YES 12.372 H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/FiniteMap.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:



HASKELL
  ↳ LR

mainModule FiniteMap
  ((addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a) :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM (\key elt rest ->(key,elt: rest) [] fm

  foldFM :: (b  ->  a  ->  c  ->  c ->  c  ->  FiniteMap b a  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Lambda Reductions:
The following Lambda expression
\keyeltrest→(key,elt: rest

is transformed to
fmToList0 key elt rest = (key,elt: rest



↳ HASKELL
  ↳ LR
HASKELL
      ↳ CR

mainModule FiniteMap
  ((addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a) :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  b  ->  a  ->  a ->  a  ->  FiniteMap c b  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Case Reductions:
The following Case expression
case fm_l of
 EmptyFM → True
 Branch left_key _ _ _ _ → 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

is transformed to
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key _ _ _ _) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

The following Case expression
case fm_r of
 EmptyFM → True
 Branch right_key _ _ _ _ → 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

is transformed to
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key _ _ _ _) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

The following Case expression
case fm_R of
 Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 → single_L fm_L fm_R
 | otherwise
 → double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

The following Case expression
case fm_L of
 Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 → single_R fm_L fm_R
 | otherwise
 → double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

The following Case expression
case compare x y of
 EQ → o
 LT → LT
 GT → GT

is transformed to
primCompAux0 o EQ = o
primCompAux0 o LT = LT
primCompAux0 o GT = GT



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
HASKELL
          ↳ IFR

mainModule FiniteMap
  ((addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



If Reductions:
The following If expression
if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero

is transformed to
primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y))
primDivNatS0 x y False = Zero

The following If expression
if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x

is transformed to
primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y)
primModNatS0 x y False = Succ x



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
HASKELL
              ↳ BR

mainModule FiniteMap
  ((addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Replaced joker patterns by fresh variables and removed binding patterns.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
HASKELL
                  ↳ COR

mainModule FiniteMap
  ((addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt xx xy EmptyFM(key,elt)
findMax (Branch key elt xz yu fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  a  ->  c  ->  c ->  c  ->  FiniteMap b a  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch zw zx zy fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r vuy fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l yz fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vx vy vz wu
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key wv ww wx wy
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch yv yw size yx yysize

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Cond Reductions:
The following Function with conditions
addToFM_C combiner EmptyFM key elt = unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt
 | new_key < key
 = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
 | new_key > key
 = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise
 = Branch new_key (combiner elt new_eltsize fm_l fm_r

is transformed to
addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt

addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_eltsize fm_l fm_r

addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

addToFM_C4 combiner EmptyFM key elt = unitFM key elt
addToFM_C4 vzy vzz wuu wuv = addToFM_C3 vzy vzz wuu wuv

The following Function with conditions
mkBalBranch1 fm_L fm_R (Branch zw zx zy fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lr)

mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr True = double_R fm_L fm_R

mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr False = mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr otherwise

mkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

The following Function with conditions
mkBalBranch0 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)

mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr True = double_L fm_L fm_R

mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr otherwise

mkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

The following Function with conditions
mkBalBranch key elt fm_L fm_R
 | size_l + size_r < 2
 = mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l
 = mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r
 = mkBalBranch1 fm_L fm_R fm_L
 | otherwise
 = mkBranch 2 key elt fm_L fm_R
where 
double_L fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch zw zx zy fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r vuy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l yz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

is transformed to
mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R

mkBalBranch6 key elt fm_L fm_R = 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lr)
mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr False = mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vuy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l yz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

The following Function with conditions
compare x y
 | x == y
 = EQ
 | x <= y
 = LT
 | otherwise
 = GT

is transformed to
compare x y = compare3 x y

compare2 x y True = EQ
compare2 x y False = compare1 x y (x <= y)

compare1 x y True = LT
compare1 x y False = compare0 x y otherwise

compare0 x y True = GT

compare3 x y = compare2 x y (x == y)

The following Function with conditions
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd' x wuy = gcd'2 x wuy
gcd' x y = gcd'0 x y

gcd'0 x y = gcd' y (x `rem` y)

gcd'1 True x wuy = x
gcd'1 wuz wvu wvv = gcd'0 wvu wvv

gcd'2 x wuy = gcd'1 (wuy == 0) x wuy
gcd'2 wvw wvx = gcd'0 wvw wvx

The following Function with conditions
gcd 0 0 = error []
gcd x y = 
gcd' (abs x) (abs y)
where 
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd wvy wvz = gcd3 wvy wvz
gcd x y = gcd0 x y

gcd0 x y = 
gcd' (abs x) (abs y)
where 
gcd' x wuy = gcd'2 x wuy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x wuy = x
gcd'1 wuz wvu wvv = gcd'0 wvu wvv
gcd'2 x wuy = gcd'1 (wuy == 0) x wuy
gcd'2 wvw wvx = gcd'0 wvw wvx

gcd1 True wvy wvz = error []
gcd1 wwu wwv www = gcd0 wwv www

gcd2 True wvy wvz = gcd1 (wvz == 0) wvy wvz
gcd2 wwx wwy wwz = gcd0 wwy wwz

gcd3 wvy wvz = gcd2 (wvy == 0) wvy wvz
gcd3 wxu wxv = gcd0 wxu wxv

The following Function with conditions
absReal x
 | x >= 0
 = x
 | otherwise
 = `negate` x

is transformed to
absReal x = absReal2 x

absReal0 x True = `negate` x

absReal1 x True = x
absReal1 x False = absReal0 x otherwise

absReal2 x = absReal1 x (x >= 0)

The following Function with conditions
undefined 
 | False
 = undefined

is transformed to
undefined  = undefined1

undefined0 True = undefined

undefined1  = undefined0 False

The following Function with conditions
reduce x y
 | y == 0
 = error []
 | otherwise
 = x `quot` d :% (y `quot` d)
where 
d  = gcd x y

is transformed to
reduce x y = reduce2 x y

reduce2 x y = 
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
HASKELL
                      ↳ LetRed

mainModule FiniteMap
  ((addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 vzy vzz wuu wuv addToFM_C3 vzy vzz wuu wuv

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt xx xy EmptyFM(key,elt)
findMax (Branch key elt xz yu fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where 
double_L fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rrmkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr True double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr True single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr False mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rrmkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch zw zx zy fm_ll fm_lrmkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lr)
mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr True double_R fm_L fm_R
mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr True single_R fm_L fm_R
mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr False mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lrmkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vuy fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l yz fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vx vy vz wu
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key wv ww wx wy
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch yv yw size yx yysize

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Let/Where Reductions:
The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
where 
balance_ok  = True
left_ok  = left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key vx vy vz wu) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key
left_size  = sizeFM fm_l
right_ok  = right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key wv ww wx wy) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key
right_size  = sizeFM fm_r
unbox x = x

are unpacked to the following functions on top level
mkBranchRight_ok0 wxw wxx wxy fm_r key EmptyFM = True
mkBranchRight_ok0 wxw wxx wxy fm_r key (Branch right_key wv ww wx wy) = key < mkBranchRight_ok0Smallest_right_key fm_r

mkBranchLeft_ok wxw wxx wxy = mkBranchLeft_ok0 wxw wxx wxy wxw wxx wxw

mkBranchLeft_size wxw wxx wxy = sizeFM wxw

mkBranchRight_size wxw wxx wxy = sizeFM wxy

mkBranchRight_ok wxw wxx wxy = mkBranchRight_ok0 wxw wxx wxy wxy wxx wxy

mkBranchBalance_ok wxw wxx wxy = True

mkBranchUnbox wxw wxx wxy x = x

mkBranchLeft_ok0 wxw wxx wxy fm_l key EmptyFM = True
mkBranchLeft_ok0 wxw wxx wxy fm_l key (Branch left_key vx vy vz wu) = mkBranchLeft_ok0Biggest_left_key fm_l < key

The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result

are unpacked to the following functions on top level
mkBranchResult wxz wyu wyv wyw = Branch wxz wyu (mkBranchUnbox wyv wxz wyw (1 + mkBranchLeft_size wyv wxz wyw + mkBranchRight_size wyv wxz wyw)) wyv wyw

The bindings of the following Let/Where expression
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)
mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr False = mkBalBranch00 fm_L fm_R vuv vuw vux fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch01 fm_L fm_R vuv vuw vux fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lr)
mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr False = mkBalBranch10 fm_L fm_R zw zx zy fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch11 fm_L fm_R zw zx zy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vuy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l yz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

are unpacked to the following functions on top level
mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lr)

mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R

mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R otherwise

mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr True = mkBalBranch6Double_R wyx wyy wyz wzu fm_L fm_R

mkBalBranch6Size_r wyx wyy wyz wzu = sizeFM wyx

mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr True = mkBalBranch6Single_R wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr False = mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr otherwise

mkBalBranch6Double_R wyx wyy wyz wzu (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 wyy wyz fm_lrr fm_r)

mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_l wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_r wyx wyy wyz wzu)

mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr) = mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)

mkBalBranch6Single_R wyx wyy wyz wzu (Branch key_l elt_l yz fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 wyy wyz fm_lr fm_r)

mkBalBranch6Single_L wyx wyy wyz wzu fm_l (Branch key_r elt_r vuy fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 wyy wyz fm_l fm_rlfm_rr

mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr True = mkBalBranch6Double_L wyx wyy wyz wzu fm_L fm_R

mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_r wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_l wyx wyy wyz wzu)

mkBalBranch6Size_l wyx wyy wyz wzu = sizeFM wzu

mkBalBranch6Double_L wyx wyy wyz wzu fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 wyy wyz fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr True = mkBalBranch6Single_L wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr False = mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr otherwise

mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lr) = mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

The bindings of the following Let/Where expression
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

are unpacked to the following functions on top level
mkBranchRight_ok0Smallest_right_key wzv = fst (findMin wzv)

The bindings of the following Let/Where expression
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

are unpacked to the following functions on top level
mkBranchLeft_ok0Biggest_left_key wzw = fst (findMax wzw)

The bindings of the following Let/Where expression
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise

are unpacked to the following functions on top level
reduce2D wzx wzy = gcd wzx wzy

reduce2Reduce1 wzx wzy x y True = error []
reduce2Reduce1 wzx wzy x y False = reduce2Reduce0 wzx wzy x y otherwise

reduce2Reduce0 wzx wzy x y True = x `quot` reduce2D wzx wzy :% (y `quot` reduce2D wzx wzy)

The bindings of the following Let/Where expression
gcd' (abs x) (abs y)
where 
gcd' x wuy = gcd'2 x wuy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x wuy = x
gcd'1 wuz wvu wvv = gcd'0 wvu wvv
gcd'2 x wuy = gcd'1 (wuy == 0) x wuy
gcd'2 wvw wvx = gcd'0 wvw wvx

are unpacked to the following functions on top level
gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y)

gcd0Gcd'1 True x wuy = x
gcd0Gcd'1 wuz wvu wvv = gcd0Gcd'0 wvu wvv

gcd0Gcd' x wuy = gcd0Gcd'2 x wuy
gcd0Gcd' x y = gcd0Gcd'0 x y

gcd0Gcd'2 x wuy = gcd0Gcd'1 (wuy == 0) x wuy
gcd0Gcd'2 wvw wvx = gcd0Gcd'0 wvw wvx



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
HASKELL
                          ↳ NumRed

mainModule FiniteMap
  ((addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a) :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 vzy vzz wuu wuv addToFM_C3 vzy vzz wuu wuv

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt xx xy EmptyFM(key,elt)
findMax (Branch key elt xz yu fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 fm_R key elt fm_L key elt fm_L fm_R (mkBalBranch6Size_l fm_R key elt fm_L + mkBalBranch6Size_r fm_R key elt fm_L < 2)

  
mkBalBranch6Double_L wyx wyy wyz wzu fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 wyy wyz fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R wyx wyy wyz wzu (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 wyy wyz fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rrmkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr True mkBalBranch6Double_L wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr True mkBalBranch6Single_L wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr False mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rrmkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lrmkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr True mkBalBranch6Double_R wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr True mkBalBranch6Single_R wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr False mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lrmkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_l wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_r wyx wyy wyz wzu)

  
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_r wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_l wyx wyy wyz wzu)

  
mkBalBranch6Single_L wyx wyy wyz wzu fm_l (Branch key_r elt_r vuy fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 wyy wyz fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R wyx wyy wyz wzu (Branch key_l elt_l yz fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 wyy wyz fm_lr fm_r)

  
mkBalBranch6Size_l wyx wyy wyz wzu sizeFM wzu

  
mkBalBranch6Size_r wyx wyy wyz wzu sizeFM wyx

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_l fm_r

  
mkBranchBalance_ok wxw wxx wxy True

  
mkBranchLeft_ok wxw wxx wxy mkBranchLeft_ok0 wxw wxx wxy wxw wxx wxw

  
mkBranchLeft_ok0 wxw wxx wxy fm_l key EmptyFM True
mkBranchLeft_ok0 wxw wxx wxy fm_l key (Branch left_key vx vy vz wumkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key wzw fst (findMax wzw)

  
mkBranchLeft_size wxw wxx wxy sizeFM wxw

  
mkBranchResult wxz wyu wyv wyw Branch wxz wyu (mkBranchUnbox wyv wxz wyw (1 + mkBranchLeft_size wyv wxz wyw + mkBranchRight_size wyv wxz wyw)) wyv wyw

  
mkBranchRight_ok wxw wxx wxy mkBranchRight_ok0 wxw wxx wxy wxy wxx wxy

  
mkBranchRight_ok0 wxw wxx wxy fm_r key EmptyFM True
mkBranchRight_ok0 wxw wxx wxy fm_r key (Branch right_key wv ww wx wykey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key wzv fst (findMin wzv)

  
mkBranchRight_size wxw wxx wxy sizeFM wxy

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  a ( ->  (FiniteMap a b) (Int  ->  Int)))
mkBranchUnbox wxw wxx wxy x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch yv yw size yx yysize

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
HASKELL
                              ↳ Narrow

mainModule FiniteMap
  (addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 vzy vzz wuu wuv addToFM_C3 vzy vzz wuu wuv

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt xx xy EmptyFM(key,elt)
findMax (Branch key elt xz yu fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 fm_R key elt fm_L key elt fm_L fm_R (mkBalBranch6Size_l fm_R key elt fm_L + mkBalBranch6Size_r fm_R key elt fm_L < Pos (Succ (Succ Zero)))

  
mkBalBranch6Double_L wyx wyy wyz wzu fm_l (Branch key_r elt_r zz (Branch key_rl elt_rl vuu fm_rll fm_rlr) fm_rrmkBranch (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) key_rl elt_rl (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) wyy wyz fm_l fm_rll) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R wyx wyy wyz wzu (Branch key_l elt_l zu fm_ll (Branch key_lr elt_lr zv fm_lrl fm_lrr)) fm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) key_lr elt_lr (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) key_l elt_l fm_ll fm_lrl) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) wyy wyz fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rrmkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr True mkBalBranch6Double_L wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr True mkBalBranch6Single_L wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr False mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch vuv vuw vux fm_rl fm_rrmkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R vuv vuw vux fm_rl fm_rr (sizeFM fm_rl < Pos (Succ (Succ Zero)) * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lrmkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr True mkBalBranch6Double_R wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr True mkBalBranch6Single_R wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr False mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch zw zx zy fm_ll fm_lrmkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R zw zx zy fm_ll fm_lr (sizeFM fm_lr < Pos (Succ (Succ Zero)) * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch (Pos (Succ (Succ Zero))) key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_l wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_r wyx wyy wyz wzu)

  
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch (Pos (Succ Zero)) key elt fm_L fm_R
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_r wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_l wyx wyy wyz wzu)

  
mkBalBranch6Single_L wyx wyy wyz wzu fm_l (Branch key_r elt_r vuy fm_rl fm_rrmkBranch (Pos (Succ (Succ (Succ Zero)))) key_r elt_r (mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) wyy wyz fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R wyx wyy wyz wzu (Branch key_l elt_l yz fm_ll fm_lrfm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) key_l elt_l fm_ll (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))) wyy wyz fm_lr fm_r)

  
mkBalBranch6Size_l wyx wyy wyz wzu sizeFM wzu

  
mkBalBranch6Size_r wyx wyy wyz wzu sizeFM wyx

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_l fm_r

  
mkBranchBalance_ok wxw wxx wxy True

  
mkBranchLeft_ok wxw wxx wxy mkBranchLeft_ok0 wxw wxx wxy wxw wxx wxw

  
mkBranchLeft_ok0 wxw wxx wxy fm_l key EmptyFM True
mkBranchLeft_ok0 wxw wxx wxy fm_l key (Branch left_key vx vy vz wumkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key wzw fst (findMax wzw)

  
mkBranchLeft_size wxw wxx wxy sizeFM wxw

  
mkBranchResult wxz wyu wyv wyw Branch wxz wyu (mkBranchUnbox wyv wxz wyw (Pos (Succ Zero+ mkBranchLeft_size wyv wxz wyw + mkBranchRight_size wyv wxz wyw)) wyv wyw

  
mkBranchRight_ok wxw wxx wxy mkBranchRight_ok0 wxw wxx wxy wxy wxx wxy

  
mkBranchRight_ok0 wxw wxx wxy fm_r key EmptyFM True
mkBranchRight_ok0 wxw wxx wxy fm_r key (Branch right_key wv ww wx wykey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key wzv fst (findMin wzv)

  
mkBranchRight_size wxw wxx wxy sizeFM wxy

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  a ( ->  (FiniteMap a b) (Int  ->  Int)))
mkBranchUnbox wxw wxx wxy x x

  sIZE_RATIO :: Int
sIZE_RATIO Pos (Succ (Succ (Succ (Succ (Succ Zero)))))

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM Pos Zero
sizeFM (Branch yv yw size yx yysize

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt (Pos (Succ Zero)) emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Haskell To QDPs


↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primEqNat(Succ(wzz5000), Succ(wzz40000)) → new_primEqNat(wzz5000, wzz40000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primCmpNat(Succ(wzz500), Succ(wzz4000)) → new_primCmpNat(wzz500, wzz4000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMinusNat(Succ(wzz45200), Succ(wzz13200)) → new_primMinusNat(wzz45200, wzz13200)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primPlusNat(Succ(wzz45200), Succ(wzz13200)) → new_primPlusNat(wzz45200, wzz13200)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMulNat(Succ(wzz5100), Succ(wzz40100)) → new_primMulNat(wzz5100, Succ(wzz40100))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_esEs2(Just(wzz500), Just(wzz4000), app(app(app(ty_@3, bcd), bce), bcf)) → new_esEs1(wzz500, wzz4000, bcd, bce, bcf)
new_esEs3(:(wzz500, wzz501), :(wzz4000, wzz4001), app(app(ty_Either, bdb), bdc)) → new_esEs(wzz500, wzz4000, bdb, bdc)
new_esEs3(:(wzz500, wzz501), :(wzz4000, wzz4001), app(app(ty_@2, bdd), bde)) → new_esEs0(wzz500, wzz4000, bdd, bde)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, app(app(app(ty_@3, bab), bac), bad), hg) → new_esEs1(wzz501, wzz4001, bab, bac, bad)
new_esEs3(:(wzz500, wzz501), :(wzz4000, wzz4001), app(ty_[], beb)) → new_esEs3(wzz500, wzz4000, beb)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, gc, app(ty_[], hd)) → new_esEs3(wzz502, wzz4002, hd)
new_esEs2(Just(wzz500), Just(wzz4000), app(app(ty_Either, bbh), bca)) → new_esEs(wzz500, wzz4000, bbh, bca)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), de, app(app(app(ty_@3, eb), ec), ed)) → new_esEs1(wzz501, wzz4001, eb, ec, ed)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, gc, app(app(app(ty_@3, gh), ha), hb)) → new_esEs1(wzz502, wzz4002, gh, ha, hb)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, gc, app(app(ty_@2, gf), gg)) → new_esEs0(wzz502, wzz4002, gf, gg)
new_esEs(Right(wzz500), Right(wzz4000), cb, app(app(ty_@2, ce), cf)) → new_esEs0(wzz500, wzz4000, ce, cf)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), de, app(ty_[], ef)) → new_esEs3(wzz501, wzz4001, ef)
new_esEs2(Just(wzz500), Just(wzz4000), app(ty_Maybe, bcg)) → new_esEs2(wzz500, wzz4000, bcg)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), app(ty_[], ga), fa) → new_esEs3(wzz500, wzz4000, ga)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), app(app(ty_@2, bba), bbb), gc, hg) → new_esEs0(wzz500, wzz4000, bba, bbb)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), app(app(ty_Either, eg), eh), fa) → new_esEs(wzz500, wzz4000, eg, eh)
new_esEs(Left(wzz500), Left(wzz4000), app(ty_Maybe, bh), bb) → new_esEs2(wzz500, wzz4000, bh)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), de, app(app(ty_Either, df), dg)) → new_esEs(wzz501, wzz4001, df, dg)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), app(ty_[], bbg), gc, hg) → new_esEs3(wzz500, wzz4000, bbg)
new_esEs3(:(wzz500, wzz501), :(wzz4000, wzz4001), bda) → new_esEs3(wzz501, wzz4001, bda)
new_esEs(Left(wzz500), Left(wzz4000), app(ty_[], ca), bb) → new_esEs3(wzz500, wzz4000, ca)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), app(app(app(ty_@3, bbc), bbd), bbe), gc, hg) → new_esEs1(wzz500, wzz4000, bbc, bbd, bbe)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, app(ty_[], baf), hg) → new_esEs3(wzz501, wzz4001, baf)
new_esEs(Right(wzz500), Right(wzz4000), cb, app(app(app(ty_@3, cg), da), db)) → new_esEs1(wzz500, wzz4000, cg, da, db)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), de, app(ty_Maybe, ee)) → new_esEs2(wzz501, wzz4001, ee)
new_esEs(Right(wzz500), Right(wzz4000), cb, app(app(ty_Either, cc), cd)) → new_esEs(wzz500, wzz4000, cc, cd)
new_esEs(Right(wzz500), Right(wzz4000), cb, app(ty_[], dd)) → new_esEs3(wzz500, wzz4000, dd)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, app(ty_Maybe, bae), hg) → new_esEs2(wzz501, wzz4001, bae)
new_esEs(Left(wzz500), Left(wzz4000), app(app(ty_@2, bc), bd), bb) → new_esEs0(wzz500, wzz4000, bc, bd)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, gc, app(app(ty_Either, gd), ge)) → new_esEs(wzz502, wzz4002, gd, ge)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), app(ty_Maybe, fh), fa) → new_esEs2(wzz500, wzz4000, fh)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, gc, app(ty_Maybe, hc)) → new_esEs2(wzz502, wzz4002, hc)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, app(app(ty_Either, he), hf), hg) → new_esEs(wzz501, wzz4001, he, hf)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), app(app(ty_Either, bag), bah), gc, hg) → new_esEs(wzz500, wzz4000, bag, bah)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), app(app(ty_@2, fb), fc), fa) → new_esEs0(wzz500, wzz4000, fb, fc)
new_esEs(Right(wzz500), Right(wzz4000), cb, app(ty_Maybe, dc)) → new_esEs2(wzz500, wzz4000, dc)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), app(ty_Maybe, bbf), gc, hg) → new_esEs2(wzz500, wzz4000, bbf)
new_esEs(Left(wzz500), Left(wzz4000), app(app(app(ty_@3, be), bf), bg), bb) → new_esEs1(wzz500, wzz4000, be, bf, bg)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), app(app(app(ty_@3, fd), ff), fg), fa) → new_esEs1(wzz500, wzz4000, fd, ff, fg)
new_esEs1(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), gb, app(app(ty_@2, hh), baa), hg) → new_esEs0(wzz501, wzz4001, hh, baa)
new_esEs0(@2(wzz500, wzz501), @2(wzz4000, wzz4001), de, app(app(ty_@2, dh), ea)) → new_esEs0(wzz501, wzz4001, dh, ea)
new_esEs3(:(wzz500, wzz501), :(wzz4000, wzz4001), app(ty_Maybe, bea)) → new_esEs2(wzz500, wzz4000, bea)
new_esEs3(:(wzz500, wzz501), :(wzz4000, wzz4001), app(app(app(ty_@3, bdf), bdg), bdh)) → new_esEs1(wzz500, wzz4000, bdf, bdg, bdh)
new_esEs(Left(wzz500), Left(wzz4000), app(app(ty_Either, h), ba), bb) → new_esEs(wzz500, wzz4000, h, ba)
new_esEs2(Just(wzz500), Just(wzz4000), app(app(ty_@2, bcb), bcc)) → new_esEs0(wzz500, wzz4000, bcb, bcc)
new_esEs2(Just(wzz500), Just(wzz4000), app(ty_[], bch)) → new_esEs3(wzz500, wzz4000, bch)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_lt2(:(wzz50, wzz51), :(wzz400, wzz401), baf) → new_primCompAux(wzz50, wzz400, new_compare0(wzz51, wzz401, baf), baf)
new_ltEs0(Just(wzz670), Just(wzz680), app(app(app(ty_@3, dh), ea), eb)) → new_ltEs1(wzz670, wzz680, dh, ea, eb)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, app(app(ty_@2, cb), cc)), cd)) → new_lt(wzz670, wzz680, cb, cc)
new_ltEs3(Left(wzz670), Left(wzz680), app(app(ty_Either, bfg), bfh), bfa) → new_ltEs3(wzz670, wzz680, bfg, bfh)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, app(app(ty_Either, cag), cah), bhh, caa) → new_lt3(wzz78, wzz81, cag, cah)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, app(app(app(ty_@3, gf), gg), gh), gd) → new_lt1(wzz671, wzz681, gf, gg, gh)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, app(app(app(ty_@3, bcf), bcg), bch), bcd) → new_lt1(wzz112, wzz114, bcf, bcg, bch)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), app(ty_Maybe, ce), cd) → new_lt0(wzz670, wzz680, ce)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), app(ty_[], db), cd) → new_lt2(wzz670, wzz680, db)
new_lt1(@3(wzz50, wzz51, wzz52), @3(wzz400, wzz401, wzz402), bhc, bhd, bhe) → new_compare22(wzz50, wzz51, wzz52, wzz400, wzz401, wzz402, new_asAs(new_esEs9(wzz50, wzz400, bhc), new_asAs(new_esEs8(wzz51, wzz401, bhd), new_esEs7(wzz52, wzz402, bhe))), bhc, bhd, bhe)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), app(app(ty_Either, bac), bad), eg, gd) → new_lt3(wzz670, wzz680, bac, bad)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), app(ty_[], bab), eg, gd) → new_lt2(wzz670, wzz680, bab)
new_compare23(wzz94, wzz95, False, app(app(app(ty_@3, ceb), cec), ced), cdh) → new_ltEs1(wzz94, wzz95, ceb, cec, ced)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, app(app(ty_@2, ccc), ccd), caa) → new_lt(wzz79, wzz82, ccc, ccd)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), app(app(ty_@2, hd), he), eg, gd) → new_lt(wzz670, wzz680, hd, he)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), eg), app(app(app(ty_@3, fc), fd), ff))) → new_ltEs1(wzz672, wzz682, fc, fd, ff)
new_compare2(Just(wzz50), Just(wzz400), bef) → new_compare21(wzz50, wzz400, new_esEs6(wzz50, wzz400, bef), bef)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, app(ty_Maybe, cab), bhh, caa) → new_lt0(wzz78, wzz81, cab)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, app(ty_Maybe, ge), gd) → new_lt0(wzz671, wzz681, ge)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, bhh, app(ty_Maybe, cbd)) → new_ltEs0(wzz80, wzz83, cbd)
new_compare23(wzz94, wzz95, False, app(ty_Maybe, cea), cdh) → new_ltEs0(wzz94, wzz95, cea)
new_compare21(Just(wzz670), Just(wzz680), False, app(ty_Maybe, app(ty_[], ec))) → new_ltEs2(wzz670, wzz680, ec)
new_compare21(Left(wzz670), Left(wzz680), False, app(app(ty_Either, app(app(app(ty_@3, bfc), bfd), bfe)), bfa)) → new_ltEs1(wzz670, wzz680, bfc, bfd, bfe)
new_ltEs0(Just(wzz670), Just(wzz680), app(ty_Maybe, dg)) → new_ltEs0(wzz670, wzz680, dg)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, bdd, app(app(ty_Either, bed), bee)) → new_ltEs3(wzz113, wzz115, bed, bee)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, bhh, app(app(ty_@2, cbb), cbc)) → new_ltEs(wzz80, wzz83, cbb, cbc)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, app(app(app(ty_@3, hg), hh), baa)), eg), gd)) → new_lt1(wzz670, wzz680, hg, hh, baa)
new_primCompAux(wzz50, wzz400, wzz51, app(ty_[], bbe)) → new_compare(wzz50, wzz400, bbe)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, bdd, app(ty_[], bec)) → new_ltEs2(wzz113, wzz115, bec)
new_ltEs3(Left(wzz670), Left(wzz680), app(ty_Maybe, bfb), bfa) → new_ltEs0(wzz670, wzz680, bfb)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), app(ty_Maybe, ge)), gd)) → new_lt0(wzz671, wzz681, ge)
new_ltEs2(wzz67, wzz68, bae) → new_compare(wzz67, wzz68, bae)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, app(app(app(ty_@3, cf), cg), da)), cd)) → new_lt1(wzz670, wzz680, cf, cg, da)
new_lt(@2(wzz50, wzz51), @2(wzz400, wzz401), bbh, bca) → new_compare20(wzz50, wzz51, wzz400, wzz401, new_asAs(new_esEs5(wzz50, wzz400, bbh), new_esEs4(wzz51, wzz401, bca)), bbh, bca)
new_compare24(wzz101, wzz102, False, ceh, app(app(ty_Either, cfh), cga)) → new_ltEs3(wzz101, wzz102, cfh, cga)
new_compare23(wzz94, wzz95, False, app(ty_[], cee), cdh) → new_ltEs2(wzz94, wzz95, cee)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, eg, app(app(ty_@2, eh), fa)) → new_ltEs(wzz672, wzz682, eh, fa)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, bdd, app(ty_Maybe, bdg)) → new_ltEs0(wzz113, wzz115, bdg)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, app(app(ty_Either, bdb), bdc), bcd) → new_lt3(wzz112, wzz114, bdb, bdc)
new_primCompAux(wzz50, wzz400, wzz51, app(ty_Maybe, bba)) → new_compare2(wzz50, wzz400, bba)
new_compare21(Just(wzz670), Just(wzz680), False, app(ty_Maybe, app(app(ty_Either, ed), ee))) → new_ltEs3(wzz670, wzz680, ed, ee)
new_ltEs3(Right(wzz670), Right(wzz680), bga, app(app(ty_Either, bha), bhb)) → new_ltEs3(wzz670, wzz680, bha, bhb)
new_lt3(Right(wzz50), Right(wzz400), cdd, cde) → new_compare24(wzz50, wzz400, new_esEs11(wzz50, wzz400, cde), cdd, cde)
new_compare21(Just(wzz670), Just(wzz680), False, app(ty_Maybe, app(app(ty_@2, de), df))) → new_ltEs(wzz670, wzz680, de, df)
new_compare3(@3(wzz50, wzz51, wzz52), @3(wzz400, wzz401, wzz402), bhc, bhd, bhe) → new_compare22(wzz50, wzz51, wzz52, wzz400, wzz401, wzz402, new_asAs(new_esEs9(wzz50, wzz400, bhc), new_asAs(new_esEs8(wzz51, wzz401, bhd), new_esEs7(wzz52, wzz402, bhe))), bhc, bhd, bhe)
new_compare21(Right(wzz670), Right(wzz680), False, app(app(ty_Either, bga), app(app(ty_Either, bha), bhb))) → new_ltEs3(wzz670, wzz680, bha, bhb)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, h), app(app(app(ty_@3, bd), be), bf))) → new_ltEs1(wzz671, wzz681, bd, be, bf)
new_compare23(wzz94, wzz95, False, app(app(ty_Either, cef), ceg), cdh) → new_ltEs3(wzz94, wzz95, cef, ceg)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), eg), app(app(ty_Either, fh), ga))) → new_ltEs3(wzz672, wzz682, fh, ga)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, app(app(ty_Either, hb), hc), gd) → new_lt3(wzz671, wzz681, hb, hc)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, app(app(ty_@2, hd), he)), eg), gd)) → new_lt(wzz670, wzz680, hd, he)
new_compare21(Right(wzz670), Right(wzz680), False, app(app(ty_Either, bga), app(app(app(ty_@3, bge), bgf), bgg))) → new_ltEs1(wzz670, wzz680, bge, bgf, bgg)
new_primCompAux(wzz50, wzz400, wzz51, app(app(app(ty_@3, bbb), bbc), bbd)) → new_compare3(wzz50, wzz400, bbb, bbc, bbd)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), h, app(app(ty_Either, bh), ca)) → new_ltEs3(wzz671, wzz681, bh, ca)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), h, app(app(ty_@2, ba), bb)) → new_ltEs(wzz671, wzz681, ba, bb)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, app(app(ty_Either, cdb), cdc), caa) → new_lt3(wzz79, wzz82, cdb, cdc)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, eg, app(app(app(ty_@3, fc), fd), ff)) → new_ltEs1(wzz672, wzz682, fc, fd, ff)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), app(app(ty_Either, dc), dd), cd) → new_lt3(wzz670, wzz680, dc, dd)
new_lt2(:(wzz50, wzz51), :(wzz400, wzz401), baf) → new_compare(wzz51, wzz401, baf)
new_compare1(@2(wzz50, wzz51), @2(wzz400, wzz401), bbh, bca) → new_compare20(wzz50, wzz51, wzz400, wzz401, new_asAs(new_esEs5(wzz50, wzz400, bbh), new_esEs4(wzz51, wzz401, bca)), bbh, bca)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), h, app(ty_[], bg)) → new_ltEs2(wzz671, wzz681, bg)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, h), app(ty_[], bg))) → new_ltEs2(wzz671, wzz681, bg)
new_compare21(Left(wzz670), Left(wzz680), False, app(app(ty_Either, app(ty_[], bff)), bfa)) → new_ltEs2(wzz670, wzz680, bff)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), h, app(ty_Maybe, bc)) → new_ltEs0(wzz671, wzz681, bc)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), app(app(app(ty_@3, cf), cg), da), cd) → new_lt1(wzz670, wzz680, cf, cg, da)
new_compare21(Right(wzz670), Right(wzz680), False, app(app(ty_Either, bga), app(app(ty_@2, bgb), bgc))) → new_ltEs(wzz670, wzz680, bgb, bgc)
new_compare24(wzz101, wzz102, False, ceh, app(ty_Maybe, cfc)) → new_ltEs0(wzz101, wzz102, cfc)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, app(app(ty_@2, bhf), bhg), bhh, caa) → new_lt(wzz78, wzz81, bhf, bhg)
new_primCompAux(wzz50, wzz400, wzz51, app(app(ty_@2, bag), bah)) → new_compare1(wzz50, wzz400, bag, bah)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, app(app(app(ty_@3, ccf), ccg), cch), caa) → new_lt1(wzz79, wzz82, ccf, ccg, cch)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, app(ty_[], db)), cd)) → new_lt2(wzz670, wzz680, db)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, bhh, app(app(app(ty_@3, cbe), cbf), cbg)) → new_ltEs1(wzz80, wzz83, cbe, cbf, cbg)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), eg), app(ty_Maybe, fb))) → new_ltEs0(wzz672, wzz682, fb)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, app(ty_[], cda), caa) → new_lt2(wzz79, wzz82, cda)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, app(ty_[], ha), gd) → new_lt2(wzz671, wzz681, ha)
new_ltEs3(Right(wzz670), Right(wzz680), bga, app(ty_[], bgh)) → new_ltEs2(wzz670, wzz680, bgh)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, bhh, app(app(ty_Either, cca), ccb)) → new_ltEs3(wzz80, wzz83, cca, ccb)
new_compare24(wzz101, wzz102, False, ceh, app(ty_[], cfg)) → new_ltEs2(wzz101, wzz102, cfg)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, bhh, app(ty_[], cbh)) → new_ltEs2(wzz80, wzz83, cbh)
new_compare4(Right(wzz50), Right(wzz400), cdd, cde) → new_compare24(wzz50, wzz400, new_esEs11(wzz50, wzz400, cde), cdd, cde)
new_ltEs3(Right(wzz670), Right(wzz680), bga, app(app(app(ty_@3, bge), bgf), bgg)) → new_ltEs1(wzz670, wzz680, bge, bgf, bgg)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, app(ty_Maybe, hf)), eg), gd)) → new_lt0(wzz670, wzz680, hf)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, app(ty_[], bda), bcd) → new_lt2(wzz112, wzz114, bda)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, app(app(ty_@2, gb), gc), gd) → new_lt(wzz671, wzz681, gb, gc)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), app(app(ty_@2, gb), gc)), gd)) → new_lt(wzz671, wzz681, gb, gc)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), eg), app(ty_[], fg))) → new_ltEs2(wzz672, wzz682, fg)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, app(ty_Maybe, ce)), cd)) → new_lt0(wzz670, wzz680, ce)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, app(ty_[], caf), bhh, caa) → new_lt2(wzz78, wzz81, caf)
new_compare21(Just(wzz670), Just(wzz680), False, app(ty_Maybe, app(app(app(ty_@3, dh), ea), eb))) → new_ltEs1(wzz670, wzz680, dh, ea, eb)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), app(app(ty_@2, cb), cc), cd) → new_lt(wzz670, wzz680, cb, cc)
new_ltEs0(Just(wzz670), Just(wzz680), app(app(ty_Either, ed), ee)) → new_ltEs3(wzz670, wzz680, ed, ee)
new_compare24(wzz101, wzz102, False, ceh, app(app(app(ty_@3, cfd), cfe), cff)) → new_ltEs1(wzz101, wzz102, cfd, cfe, cff)
new_ltEs3(Left(wzz670), Left(wzz680), app(ty_[], bff), bfa) → new_ltEs2(wzz670, wzz680, bff)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, eg, app(app(ty_Either, fh), ga)) → new_ltEs3(wzz672, wzz682, fh, ga)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, app(app(app(ty_@3, cac), cad), cae), bhh, caa) → new_lt1(wzz78, wzz81, cac, cad, cae)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), app(ty_[], ha)), gd)) → new_lt2(wzz671, wzz681, ha)
new_compare21(Left(wzz670), Left(wzz680), False, app(app(ty_Either, app(app(ty_@2, beg), beh)), bfa)) → new_ltEs(wzz670, wzz680, beg, beh)
new_ltEs(@2(wzz670, wzz671), @2(wzz680, wzz681), h, app(app(app(ty_@3, bd), be), bf)) → new_ltEs1(wzz671, wzz681, bd, be, bf)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), eg), app(app(ty_@2, eh), fa))) → new_ltEs(wzz672, wzz682, eh, fa)
new_compare24(wzz101, wzz102, False, ceh, app(app(ty_@2, cfa), cfb)) → new_ltEs(wzz101, wzz102, cfa, cfb)
new_compare21(Right(wzz670), Right(wzz680), False, app(app(ty_Either, bga), app(ty_[], bgh))) → new_ltEs2(wzz670, wzz680, bgh)
new_primCompAux(wzz50, wzz400, wzz51, app(app(ty_Either, bbf), bbg)) → new_compare4(wzz50, wzz400, bbf, bbg)
new_compare23(wzz94, wzz95, False, app(app(ty_@2, cdf), cdg), cdh) → new_ltEs(wzz94, wzz95, cdf, cdg)
new_ltEs3(Left(wzz670), Left(wzz680), app(app(app(ty_@3, bfc), bfd), bfe), bfa) → new_ltEs1(wzz670, wzz680, bfc, bfd, bfe)
new_ltEs3(Left(wzz670), Left(wzz680), app(app(ty_@2, beg), beh), bfa) → new_ltEs(wzz670, wzz680, beg, beh)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, app(app(ty_Either, bac), bad)), eg), gd)) → new_lt3(wzz670, wzz680, bac, bad)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, h), app(ty_Maybe, bc))) → new_ltEs0(wzz671, wzz681, bc)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, eg, app(ty_[], fg)) → new_ltEs2(wzz672, wzz682, fg)
new_ltEs0(Just(wzz670), Just(wzz680), app(ty_[], ec)) → new_ltEs2(wzz670, wzz680, ec)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), app(ty_Maybe, hf), eg, gd) → new_lt0(wzz670, wzz680, hf)
new_compare(:(wzz50, wzz51), :(wzz400, wzz401), baf) → new_compare(wzz51, wzz401, baf)
new_ltEs0(Just(wzz670), Just(wzz680), app(app(ty_@2, de), df)) → new_ltEs(wzz670, wzz680, de, df)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, app(app(ty_@2, bcb), bcc), bcd) → new_lt(wzz112, wzz114, bcb, bcc)
new_compare(:(wzz50, wzz51), :(wzz400, wzz401), baf) → new_primCompAux(wzz50, wzz400, new_compare0(wzz51, wzz401, baf), baf)
new_compare4(Left(wzz50), Left(wzz400), cdd, cde) → new_compare23(wzz50, wzz400, new_esEs10(wzz50, wzz400, cdd), cdd, cde)
new_ltEs3(Right(wzz670), Right(wzz680), bga, app(app(ty_@2, bgb), bgc)) → new_ltEs(wzz670, wzz680, bgb, bgc)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, bdd, app(app(app(ty_@3, bdh), bea), beb)) → new_ltEs1(wzz113, wzz115, bdh, bea, beb)
new_lt3(Left(wzz50), Left(wzz400), cdd, cde) → new_compare23(wzz50, wzz400, new_esEs10(wzz50, wzz400, cdd), cdd, cde)
new_compare21(Left(wzz670), Left(wzz680), False, app(app(ty_Either, app(ty_Maybe, bfb)), bfa)) → new_ltEs0(wzz670, wzz680, bfb)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, app(app(ty_Either, dc), dd)), cd)) → new_lt3(wzz670, wzz680, dc, dd)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, h), app(app(ty_@2, ba), bb))) → new_ltEs(wzz671, wzz681, ba, bb)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, eg, app(ty_Maybe, fb)) → new_ltEs0(wzz672, wzz682, fb)
new_compare21(wzz67, wzz68, False, app(ty_[], bae)) → new_compare(wzz67, wzz68, bae)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), app(app(app(ty_@3, gf), gg), gh)), gd)) → new_lt1(wzz671, wzz681, gf, gg, gh)
new_compare22(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, app(ty_Maybe, cce), caa) → new_lt0(wzz79, wzz82, cce)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, ef), app(app(ty_Either, hb), hc)), gd)) → new_lt3(wzz671, wzz681, hb, hc)
new_ltEs3(Right(wzz670), Right(wzz680), bga, app(ty_Maybe, bgd)) → new_ltEs0(wzz670, wzz680, bgd)
new_compare21(Just(wzz670), Just(wzz680), False, app(ty_Maybe, app(ty_Maybe, dg))) → new_ltEs0(wzz670, wzz680, dg)
new_compare21(Right(wzz670), Right(wzz680), False, app(app(ty_Either, bga), app(ty_Maybe, bgd))) → new_ltEs0(wzz670, wzz680, bgd)
new_compare21(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), False, app(app(app(ty_@3, app(ty_[], bab)), eg), gd)) → new_lt2(wzz670, wzz680, bab)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, bdd, app(app(ty_@2, bde), bdf)) → new_ltEs(wzz113, wzz115, bde, bdf)
new_compare21(Left(wzz670), Left(wzz680), False, app(app(ty_Either, app(app(ty_Either, bfg), bfh)), bfa)) → new_ltEs3(wzz670, wzz680, bfg, bfh)
new_compare20(wzz112, wzz113, wzz114, wzz115, False, app(ty_Maybe, bce), bcd) → new_lt0(wzz112, wzz114, bce)
new_compare21(@2(wzz670, wzz671), @2(wzz680, wzz681), False, app(app(ty_@2, h), app(app(ty_Either, bh), ca))) → new_ltEs3(wzz671, wzz681, bh, ca)
new_lt0(Just(wzz50), Just(wzz400), bef) → new_compare21(wzz50, wzz400, new_esEs6(wzz50, wzz400, bef), bef)
new_ltEs1(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), app(app(app(ty_@3, hg), hh), baa), eg, gd) → new_lt1(wzz670, wzz680, hg, hh, baa)

The TRS R consists of the following rules:

new_ltEs18(wzz672, wzz682, app(ty_Ratio, dcb)) → new_ltEs15(wzz672, wzz682, dcb)
new_esEs15(Left(wzz500), Left(wzz4000), app(ty_Ratio, ehb), dbb) → new_esEs22(wzz500, wzz4000, ehb)
new_lt21(wzz79, wzz82, ty_Float) → new_lt13(wzz79, wzz82)
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_Ordering) → new_ltEs9(wzz670, wzz680)
new_compare19(wzz169, wzz170, wzz171, wzz172, True, wzz174, fce, fcf) → new_compare111(wzz169, wzz170, wzz171, wzz172, True, fce, fcf)
new_compare10(EQ, LT) → GT
new_lt20(wzz78, wzz81, app(app(app(ty_@3, cac), cad), cae)) → new_lt12(wzz78, wzz81, cac, cad, cae)
new_esEs4(wzz51, wzz401, ty_Bool) → new_esEs14(wzz51, wzz401)
new_ltEs17(False, False) → True
new_esEs29(wzz501, wzz4001, app(app(ty_@2, dfe), dff)) → new_esEs19(wzz501, wzz4001, dfe, dff)
new_esEs29(wzz501, wzz4001, app(ty_Ratio, dgb)) → new_esEs22(wzz501, wzz4001, dgb)
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_Int) → new_esEs24(wzz500, wzz4000)
new_lt7(wzz5, wzz40) → new_esEs26(new_compare12(wzz5, wzz40))
new_esEs34(wzz112, wzz114, ty_Float) → new_esEs16(wzz112, wzz114)
new_esEs39(wzz501, wzz4001, ty_@0) → new_esEs18(wzz501, wzz4001)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Char) → new_esEs17(wzz500, wzz4000)
new_lt23(wzz670, wzz680, app(app(app(ty_@3, cf), cg), da)) → new_lt12(wzz670, wzz680, cf, cg, da)
new_esEs13(Double(wzz500, wzz501), Double(wzz4000, wzz4001)) → new_esEs24(new_sr(wzz500, wzz4000), new_sr(wzz501, wzz4001))
new_esEs39(wzz501, wzz4001, app(ty_Ratio, ffa)) → new_esEs22(wzz501, wzz4001, ffa)
new_esEs15(Left(wzz500), Right(wzz4000), dba, dbb) → False
new_esEs15(Right(wzz500), Left(wzz4000), dba, dbb) → False
new_esEs17(Char(wzz500), Char(wzz4000)) → new_primEqNat0(wzz500, wzz4000)
new_lt6(wzz670, wzz680, ty_Char) → new_lt7(wzz670, wzz680)
new_esEs35(wzz670, wzz680, app(ty_Ratio, egb)) → new_esEs22(wzz670, wzz680, egb)
new_ltEs24(wzz67, wzz68, app(app(ty_@2, h), cd)) → new_ltEs7(wzz67, wzz68, h, cd)
new_esEs10(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_esEs35(wzz670, wzz680, ty_Integer) → new_esEs23(wzz670, wzz680)
new_lt23(wzz670, wzz680, ty_Double) → new_lt15(wzz670, wzz680)
new_lt20(wzz78, wzz81, app(ty_Ratio, ebb)) → new_lt16(wzz78, wzz81, ebb)
new_esEs5(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_compare29(False, False) → EQ
new_esEs12(Just(wzz500), Just(wzz4000), ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs6(wzz50, wzz400, app(app(app(ty_@3, dda), ddb), ddc)) → new_esEs20(wzz50, wzz400, dda, ddb, ddc)
new_lt22(wzz112, wzz114, ty_@0) → new_lt17(wzz112, wzz114)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Integer, dbb) → new_esEs23(wzz500, wzz4000)
new_ltEs24(wzz67, wzz68, ty_Ordering) → new_ltEs9(wzz67, wzz68)
new_lt5(wzz671, wzz681, app(ty_[], ha)) → new_lt14(wzz671, wzz681, ha)
new_esEs11(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_esEs7(wzz52, wzz402, ty_Double) → new_esEs13(wzz52, wzz402)
new_lt6(wzz670, wzz680, ty_Int) → new_lt8(wzz670, wzz680)
new_lt4(wzz5, wzz40, bbh, bca) → new_esEs26(new_compare5(wzz5, wzz40, bbh, bca))
new_esEs34(wzz112, wzz114, app(app(app(ty_@3, bcf), bcg), bch)) → new_esEs20(wzz112, wzz114, bcf, bcg, bch)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Integer) → new_ltEs8(wzz670, wzz680)
new_esEs22(:%(wzz500, wzz501), :%(wzz4000, wzz4001), dbh) → new_asAs(new_esEs37(wzz500, wzz4000, dbh), new_esEs36(wzz501, wzz4001, dbh))
new_esEs15(Left(wzz500), Left(wzz4000), app(app(ty_Either, egc), egd), dbb) → new_esEs15(wzz500, wzz4000, egc, egd)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Char) → new_ltEs5(wzz670, wzz680)
new_lt21(wzz79, wzz82, ty_Ordering) → new_lt10(wzz79, wzz82)
new_lt6(wzz670, wzz680, app(ty_[], bab)) → new_lt14(wzz670, wzz680, bab)
new_lt13(wzz5, wzz40) → new_esEs26(new_compare6(wzz5, wzz40))
new_ltEs20(wzz80, wzz83, app(ty_Ratio, ebc)) → new_ltEs15(wzz80, wzz83, ebc)
new_lt21(wzz79, wzz82, ty_@0) → new_lt17(wzz79, wzz82)
new_primMulNat0(Zero, Zero) → Zero
new_esEs29(wzz501, wzz4001, ty_Float) → new_esEs16(wzz501, wzz4001)
new_esEs40(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_@0) → new_esEs18(wzz500, wzz4000)
new_ltEs20(wzz80, wzz83, ty_Float) → new_ltEs12(wzz80, wzz83)
new_esEs31(wzz500, wzz4000, app(ty_[], eah)) → new_esEs25(wzz500, wzz4000, eah)
new_esEs11(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_ltEs9(GT, LT) → False
new_compare10(GT, LT) → GT
new_ltEs18(wzz672, wzz682, app(ty_[], fg)) → new_ltEs13(wzz672, wzz682, fg)
new_lt23(wzz670, wzz680, ty_Ordering) → new_lt10(wzz670, wzz680)
new_esEs32(wzz79, wzz82, app(ty_Ratio, ebd)) → new_esEs22(wzz79, wzz82, ebd)
new_esEs34(wzz112, wzz114, app(ty_Ratio, edc)) → new_esEs22(wzz112, wzz114, edc)
new_compare6(Float(wzz50, wzz51), Float(wzz400, wzz401)) → new_compare9(new_sr(wzz50, wzz400), new_sr(wzz51, wzz401))
new_esEs35(wzz670, wzz680, app(app(ty_@2, cb), cc)) → new_esEs19(wzz670, wzz680, cb, cc)
new_compare28(wzz101, wzz102, False, ceh, ecg) → new_compare18(wzz101, wzz102, new_ltEs21(wzz101, wzz102, ecg), ceh, ecg)
new_esEs34(wzz112, wzz114, ty_Double) → new_esEs13(wzz112, wzz114)
new_ltEs23(wzz671, wzz681, ty_Integer) → new_ltEs8(wzz671, wzz681)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Ordering, dbb) → new_esEs21(wzz500, wzz4000)
new_esEs7(wzz52, wzz402, app(app(app(ty_@3, dee), def), deg)) → new_esEs20(wzz52, wzz402, dee, def, deg)
new_esEs39(wzz501, wzz4001, app(app(ty_Either, feb), fec)) → new_esEs15(wzz501, wzz4001, feb, fec)
new_esEs35(wzz670, wzz680, ty_Int) → new_esEs24(wzz670, wzz680)
new_esEs31(wzz500, wzz4000, app(app(ty_@2, eaa), eab)) → new_esEs19(wzz500, wzz4000, eaa, eab)
new_lt5(wzz671, wzz681, app(app(ty_@2, gb), gc)) → new_lt4(wzz671, wzz681, gb, gc)
new_ltEs22(wzz113, wzz115, ty_Double) → new_ltEs14(wzz113, wzz115)
new_ltEs20(wzz80, wzz83, app(app(app(ty_@3, cbe), cbf), cbg)) → new_ltEs11(wzz80, wzz83, cbe, cbf, cbg)
new_esEs4(wzz51, wzz401, app(ty_Ratio, daf)) → new_esEs22(wzz51, wzz401, daf)
new_esEs6(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_lt21(wzz79, wzz82, app(ty_Maybe, cce)) → new_lt11(wzz79, wzz82, cce)
new_lt20(wzz78, wzz81, ty_Integer) → new_lt9(wzz78, wzz81)
new_ltEs23(wzz671, wzz681, app(app(ty_Either, bh), ca)) → new_ltEs4(wzz671, wzz681, bh, ca)
new_esEs31(wzz500, wzz4000, ty_Char) → new_esEs17(wzz500, wzz4000)
new_compare12(Char(wzz50), Char(wzz400)) → new_primCmpNat0(wzz50, wzz400)
new_esEs28(wzz670, wzz680, ty_Integer) → new_esEs23(wzz670, wzz680)
new_esEs40(wzz500, wzz4000, ty_Float) → new_esEs16(wzz500, wzz4000)
new_esEs31(wzz500, wzz4000, app(ty_Maybe, eag)) → new_esEs12(wzz500, wzz4000, eag)
new_esEs12(Just(wzz500), Just(wzz4000), app(app(ty_Either, cgc), cgd)) → new_esEs15(wzz500, wzz4000, cgc, cgd)
new_esEs5(wzz50, wzz400, app(app(app(ty_@3, dbe), dbf), dbg)) → new_esEs20(wzz50, wzz400, dbe, dbf, dbg)
new_esEs7(wzz52, wzz402, ty_Bool) → new_esEs14(wzz52, wzz402)
new_compare31(wzz50, wzz400, app(app(app(ty_@3, bbb), bbc), bbd)) → new_compare30(wzz50, wzz400, bbb, bbc, bbd)
new_ltEs4(Right(wzz670), Right(wzz680), bga, app(app(app(ty_@3, bge), bgf), bgg)) → new_ltEs11(wzz670, wzz680, bge, bgf, bgg)
new_esEs34(wzz112, wzz114, ty_Integer) → new_esEs23(wzz112, wzz114)
new_ltEs9(EQ, GT) → True
new_esEs21(LT, LT) → True
new_esEs8(wzz51, wzz401, ty_Double) → new_esEs13(wzz51, wzz401)
new_esEs11(wzz50, wzz400, app(app(ty_Either, eeg), eeh)) → new_esEs15(wzz50, wzz400, eeg, eeh)
new_lt17(wzz5, wzz40) → new_esEs26(new_compare14(wzz5, wzz40))
new_lt21(wzz79, wzz82, ty_Char) → new_lt7(wzz79, wzz82)
new_esEs30(wzz500, wzz4000, ty_Double) → new_esEs13(wzz500, wzz4000)
new_esEs4(wzz51, wzz401, app(app(ty_Either, chg), chh)) → new_esEs15(wzz51, wzz401, chg, chh)
new_ltEs23(wzz671, wzz681, app(ty_[], bg)) → new_ltEs13(wzz671, wzz681, bg)
new_ltEs10(Just(wzz670), Just(wzz680), ty_@0) → new_ltEs16(wzz670, wzz680)
new_esEs21(GT, GT) → True
new_ltEs4(Left(wzz670), Left(wzz680), ty_Double, bfa) → new_ltEs14(wzz670, wzz680)
new_ltEs9(LT, EQ) → True
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_Double) → new_ltEs14(wzz670, wzz680)
new_esEs10(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_esEs7(wzz52, wzz402, ty_Int) → new_esEs24(wzz52, wzz402)
new_lt22(wzz112, wzz114, ty_Bool) → new_lt19(wzz112, wzz114)
new_esEs7(wzz52, wzz402, app(ty_[], dfb)) → new_esEs25(wzz52, wzz402, dfb)
new_ltEs19(wzz94, wzz95, app(app(ty_Either, cef), ceg)) → new_ltEs4(wzz94, wzz95, cef, ceg)
new_pePe(False, wzz202) → wzz202
new_compare29(False, True) → LT
new_lt6(wzz670, wzz680, app(ty_Ratio, dcd)) → new_lt16(wzz670, wzz680, dcd)
new_ltEs4(Left(wzz670), Left(wzz680), app(ty_Maybe, bfb), bfa) → new_ltEs10(wzz670, wzz680, bfb)
new_esEs9(wzz50, wzz400, app(app(ty_Either, ebe), ebf)) → new_esEs15(wzz50, wzz400, ebe, ebf)
new_compare25(wzz112, wzz113, wzz114, wzz115, True, bdd, bcd) → EQ
new_ltEs23(wzz671, wzz681, ty_Ordering) → new_ltEs9(wzz671, wzz681)
new_esEs38(wzz502, wzz4002, app(ty_[], fea)) → new_esEs25(wzz502, wzz4002, fea)
new_esEs35(wzz670, wzz680, ty_Bool) → new_esEs14(wzz670, wzz680)
new_ltEs10(Just(wzz670), Just(wzz680), app(ty_Ratio, edb)) → new_ltEs15(wzz670, wzz680, edb)
new_ltEs23(wzz671, wzz681, app(ty_Maybe, bc)) → new_ltEs10(wzz671, wzz681, bc)
new_ltEs23(wzz671, wzz681, ty_Bool) → new_ltEs17(wzz671, wzz681)
new_esEs8(wzz51, wzz401, app(ty_[], fca)) → new_esEs25(wzz51, wzz401, fca)
new_lt5(wzz671, wzz681, ty_@0) → new_lt17(wzz671, wzz681)
new_esEs8(wzz51, wzz401, ty_Float) → new_esEs16(wzz51, wzz401)
new_esEs35(wzz670, wzz680, ty_@0) → new_esEs18(wzz670, wzz680)
new_esEs10(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_esEs25([], [], dca) → True
new_esEs27(wzz671, wzz681, app(ty_[], ha)) → new_esEs25(wzz671, wzz681, ha)
new_compare31(wzz50, wzz400, ty_Bool) → new_compare29(wzz50, wzz400)
new_esEs8(wzz51, wzz401, app(ty_Ratio, fbg)) → new_esEs22(wzz51, wzz401, fbg)
new_compare31(wzz50, wzz400, ty_Ordering) → new_compare10(wzz50, wzz400)
new_esEs38(wzz502, wzz4002, ty_Char) → new_esEs17(wzz502, wzz4002)
new_compare14(@0, @0) → EQ
new_ltEs20(wzz80, wzz83, app(app(ty_Either, cca), ccb)) → new_ltEs4(wzz80, wzz83, cca, ccb)
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_@0) → new_ltEs16(wzz670, wzz680)
new_esEs10(wzz50, wzz400, app(ty_Maybe, eee)) → new_esEs12(wzz50, wzz400, eee)
new_esEs11(wzz50, wzz400, app(ty_Maybe, efg)) → new_esEs12(wzz50, wzz400, efg)
new_esEs34(wzz112, wzz114, app(ty_Maybe, bce)) → new_esEs12(wzz112, wzz114, bce)
new_esEs16(Float(wzz500, wzz501), Float(wzz4000, wzz4001)) → new_esEs24(new_sr(wzz500, wzz4000), new_sr(wzz501, wzz4001))
new_esEs26(EQ) → False
new_esEs10(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_compare9(wzz5, wzz40) → new_primCmpInt(wzz5, wzz40)
new_esEs30(wzz500, wzz4000, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Float) → new_esEs16(wzz500, wzz4000)
new_esEs35(wzz670, wzz680, app(ty_[], db)) → new_esEs25(wzz670, wzz680, db)
new_esEs15(Right(wzz500), Right(wzz4000), dba, app(ty_Ratio, fad)) → new_esEs22(wzz500, wzz4000, fad)
new_ltEs20(wzz80, wzz83, app(ty_[], cbh)) → new_ltEs13(wzz80, wzz83, cbh)
new_esEs15(Left(wzz500), Left(wzz4000), app(ty_[], ehd), dbb) → new_esEs25(wzz500, wzz4000, ehd)
new_ltEs9(EQ, EQ) → True
new_ltEs4(Right(wzz670), Right(wzz680), bga, app(app(ty_Either, bha), bhb)) → new_ltEs4(wzz670, wzz680, bha, bhb)
new_esEs31(wzz500, wzz4000, ty_Double) → new_esEs13(wzz500, wzz4000)
new_esEs32(wzz79, wzz82, ty_Integer) → new_esEs23(wzz79, wzz82)
new_lt6(wzz670, wzz680, ty_Integer) → new_lt9(wzz670, wzz680)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Bool, bfa) → new_ltEs17(wzz670, wzz680)
new_esEs5(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Char, bfa) → new_ltEs5(wzz670, wzz680)
new_esEs6(wzz50, wzz400, app(app(ty_@2, dcg), dch)) → new_esEs19(wzz50, wzz400, dcg, dch)
new_ltEs4(Left(wzz670), Right(wzz680), bga, bfa) → True
new_compare17(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, False, wzz191, fgf, fgg, fgh) → new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, wzz191, fgf, fgg, fgh)
new_esEs21(EQ, GT) → False
new_esEs21(GT, EQ) → False
new_esEs36(wzz501, wzz4001, ty_Integer) → new_esEs23(wzz501, wzz4001)
new_primCmpNat0(Zero, Succ(wzz4000)) → LT
new_esEs32(wzz79, wzz82, ty_Bool) → new_esEs14(wzz79, wzz82)
new_ltEs19(wzz94, wzz95, app(ty_Ratio, ddh)) → new_ltEs15(wzz94, wzz95, ddh)
new_ltEs20(wzz80, wzz83, ty_Double) → new_ltEs14(wzz80, wzz83)
new_ltEs20(wzz80, wzz83, app(app(ty_@2, cbb), cbc)) → new_ltEs7(wzz80, wzz83, cbb, cbc)
new_ltEs23(wzz671, wzz681, ty_@0) → new_ltEs16(wzz671, wzz681)
new_esEs9(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_esEs8(wzz51, wzz401, app(app(app(ty_@3, fbd), fbe), fbf)) → new_esEs20(wzz51, wzz401, fbd, fbe, fbf)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Double) → new_ltEs14(wzz670, wzz680)
new_esEs12(Just(wzz500), Just(wzz4000), app(ty_[], chd)) → new_esEs25(wzz500, wzz4000, chd)
new_ltEs22(wzz113, wzz115, ty_Bool) → new_ltEs17(wzz113, wzz115)
new_esEs30(wzz500, wzz4000, app(ty_Maybe, dhe)) → new_esEs12(wzz500, wzz4000, dhe)
new_esEs32(wzz79, wzz82, app(app(ty_Either, cdb), cdc)) → new_esEs15(wzz79, wzz82, cdb, cdc)
new_esEs12(Nothing, Just(wzz4000), cgb) → False
new_esEs12(Just(wzz500), Nothing, cgb) → False
new_ltEs4(Left(wzz670), Left(wzz680), ty_@0, bfa) → new_ltEs16(wzz670, wzz680)
new_ltEs10(Just(wzz670), Just(wzz680), app(ty_Maybe, dg)) → new_ltEs10(wzz670, wzz680, dg)
new_ltEs24(wzz67, wzz68, app(ty_Maybe, eda)) → new_ltEs10(wzz67, wzz68, eda)
new_esEs31(wzz500, wzz4000, app(app(ty_Either, dhg), dhh)) → new_esEs15(wzz500, wzz4000, dhg, dhh)
new_compare0([], [], baf) → EQ
new_esEs27(wzz671, wzz681, app(ty_Maybe, ge)) → new_esEs12(wzz671, wzz681, ge)
new_pePe(True, wzz202) → True
new_primEqNat0(Zero, Zero) → True
new_esEs27(wzz671, wzz681, ty_@0) → new_esEs18(wzz671, wzz681)
new_lt5(wzz671, wzz681, ty_Bool) → new_lt19(wzz671, wzz681)
new_esEs6(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_compare10(EQ, GT) → LT
new_lt23(wzz670, wzz680, app(ty_Ratio, egb)) → new_lt16(wzz670, wzz680, egb)
new_esEs6(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_ltEs21(wzz101, wzz102, app(app(app(ty_@3, cfd), cfe), cff)) → new_ltEs11(wzz101, wzz102, cfd, cfe, cff)
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_Float) → new_esEs16(wzz500, wzz4000)
new_ltEs4(Right(wzz670), Right(wzz680), bga, app(ty_[], bgh)) → new_ltEs13(wzz670, wzz680, bgh)
new_ltEs4(Right(wzz670), Right(wzz680), bga, app(ty_Maybe, bgd)) → new_ltEs10(wzz670, wzz680, bgd)
new_esEs29(wzz501, wzz4001, app(app(ty_Either, dfc), dfd)) → new_esEs15(wzz501, wzz4001, dfc, dfd)
new_esEs38(wzz502, wzz4002, app(ty_Maybe, fdh)) → new_esEs12(wzz502, wzz4002, fdh)
new_esEs32(wzz79, wzz82, app(app(app(ty_@3, ccf), ccg), cch)) → new_esEs20(wzz79, wzz82, ccf, ccg, cch)
new_esEs12(Nothing, Nothing, cgb) → True
new_esEs10(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_ltEs24(wzz67, wzz68, ty_Char) → new_ltEs5(wzz67, wzz68)
new_ltEs24(wzz67, wzz68, ty_@0) → new_ltEs16(wzz67, wzz68)
new_ltEs9(EQ, LT) → False
new_esEs34(wzz112, wzz114, ty_@0) → new_esEs18(wzz112, wzz114)
new_esEs8(wzz51, wzz401, app(ty_Maybe, fbh)) → new_esEs12(wzz51, wzz401, fbh)
new_esEs40(wzz500, wzz4000, ty_@0) → new_esEs18(wzz500, wzz4000)
new_ltEs23(wzz671, wzz681, ty_Int) → new_ltEs6(wzz671, wzz681)
new_sr(wzz51, wzz401) → new_primMulInt(wzz51, wzz401)
new_ltEs11(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), ef, eg, gd) → new_pePe(new_lt6(wzz670, wzz680, ef), new_asAs(new_esEs28(wzz670, wzz680, ef), new_pePe(new_lt5(wzz671, wzz681, eg), new_asAs(new_esEs27(wzz671, wzz681, eg), new_ltEs18(wzz672, wzz682, gd)))))
new_esEs5(wzz50, wzz400, app(ty_Ratio, dbh)) → new_esEs22(wzz50, wzz400, dbh)
new_esEs6(wzz50, wzz400, app(ty_[], ddf)) → new_esEs25(wzz50, wzz400, ddf)
new_esEs11(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_esEs12(Just(wzz500), Just(wzz4000), app(app(app(ty_@3, cgg), cgh), cha)) → new_esEs20(wzz500, wzz4000, cgg, cgh, cha)
new_ltEs24(wzz67, wzz68, app(app(app(ty_@3, ef), eg), gd)) → new_ltEs11(wzz67, wzz68, ef, eg, gd)
new_compare10(EQ, EQ) → EQ
new_esEs35(wzz670, wzz680, ty_Ordering) → new_esEs21(wzz670, wzz680)
new_lt20(wzz78, wzz81, app(ty_Maybe, cab)) → new_lt11(wzz78, wzz81, cab)
new_esEs6(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_lt21(wzz79, wzz82, ty_Double) → new_lt15(wzz79, wzz82)
new_lt15(wzz5, wzz40) → new_esEs26(new_compare8(wzz5, wzz40))
new_ltEs10(Just(wzz670), Just(wzz680), ty_Int) → new_ltEs6(wzz670, wzz680)
new_esEs9(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_esEs10(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Bool) → new_ltEs17(wzz670, wzz680)
new_esEs10(wzz50, wzz400, app(app(app(ty_@3, eea), eeb), eec)) → new_esEs20(wzz50, wzz400, eea, eeb, eec)
new_ltEs23(wzz671, wzz681, ty_Double) → new_ltEs14(wzz671, wzz681)
new_esEs40(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_compare210(wzz67, wzz68, False, fcg) → new_compare110(wzz67, wzz68, new_ltEs24(wzz67, wzz68, fcg), fcg)
new_lt18(wzz5, wzz40, cdd, cde) → new_esEs26(new_compare15(wzz5, wzz40, cdd, cde))
new_esEs29(wzz501, wzz4001, app(app(app(ty_@3, dfg), dfh), dga)) → new_esEs20(wzz501, wzz4001, dfg, dfh, dga)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Ordering, bfa) → new_ltEs9(wzz670, wzz680)
new_esEs27(wzz671, wzz681, ty_Int) → new_esEs24(wzz671, wzz681)
new_esEs35(wzz670, wzz680, ty_Float) → new_esEs16(wzz670, wzz680)
new_esEs28(wzz670, wzz680, ty_Float) → new_esEs16(wzz670, wzz680)
new_esEs28(wzz670, wzz680, ty_Int) → new_esEs24(wzz670, wzz680)
new_lt5(wzz671, wzz681, app(ty_Ratio, dcc)) → new_lt16(wzz671, wzz681, dcc)
new_lt14(wzz5, wzz40, baf) → new_esEs26(new_compare0(wzz5, wzz40, baf))
new_esEs30(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_esEs6(wzz50, wzz400, app(app(ty_Either, dce), dcf)) → new_esEs15(wzz50, wzz400, dce, dcf)
new_primEqInt(Neg(Succ(wzz5000)), Neg(Succ(wzz40000))) → new_primEqNat0(wzz5000, wzz40000)
new_esEs40(wzz500, wzz4000, ty_Double) → new_esEs13(wzz500, wzz4000)
new_ltEs19(wzz94, wzz95, ty_Integer) → new_ltEs8(wzz94, wzz95)
new_lt21(wzz79, wzz82, ty_Integer) → new_lt9(wzz79, wzz82)
new_compare31(wzz50, wzz400, app(app(ty_Either, bbf), bbg)) → new_compare15(wzz50, wzz400, bbf, bbg)
new_esEs4(wzz51, wzz401, ty_Char) → new_esEs17(wzz51, wzz401)
new_esEs20(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), dbe, dbf, dbg) → new_asAs(new_esEs40(wzz500, wzz4000, dbe), new_asAs(new_esEs39(wzz501, wzz4001, dbf), new_esEs38(wzz502, wzz4002, dbg)))
new_esEs7(wzz52, wzz402, ty_Integer) → new_esEs23(wzz52, wzz402)
new_ltEs12(wzz67, wzz68) → new_fsEs(new_compare6(wzz67, wzz68))
new_ltEs4(Left(wzz670), Left(wzz680), ty_Float, bfa) → new_ltEs12(wzz670, wzz680)
new_ltEs17(True, False) → False
new_esEs38(wzz502, wzz4002, ty_Bool) → new_esEs14(wzz502, wzz4002)
new_compare111(wzz169, wzz170, wzz171, wzz172, True, fce, fcf) → LT
new_lt22(wzz112, wzz114, app(app(ty_@2, bcb), bcc)) → new_lt4(wzz112, wzz114, bcb, bcc)
new_compare31(wzz50, wzz400, ty_Integer) → new_compare7(wzz50, wzz400)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs30(wzz500, wzz4000, app(ty_Ratio, dhd)) → new_esEs22(wzz500, wzz4000, dhd)
new_esEs30(wzz500, wzz4000, app(app(ty_@2, dgg), dgh)) → new_esEs19(wzz500, wzz4000, dgg, dgh)
new_esEs32(wzz79, wzz82, ty_Float) → new_esEs16(wzz79, wzz82)
new_esEs28(wzz670, wzz680, ty_Double) → new_esEs13(wzz670, wzz680)
new_esEs8(wzz51, wzz401, app(app(ty_@2, fbb), fbc)) → new_esEs19(wzz51, wzz401, fbb, fbc)
new_lt21(wzz79, wzz82, app(ty_Ratio, ebd)) → new_lt16(wzz79, wzz82, ebd)
new_esEs26(GT) → False
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_lt8(wzz5, wzz40) → new_esEs26(new_compare9(wzz5, wzz40))
new_esEs33(wzz78, wzz81, app(app(app(ty_@3, cac), cad), cae)) → new_esEs20(wzz78, wzz81, cac, cad, cae)
new_esEs38(wzz502, wzz4002, ty_Float) → new_esEs16(wzz502, wzz4002)
new_compare10(LT, EQ) → LT
new_ltEs4(Left(wzz670), Left(wzz680), app(app(ty_Either, bfg), bfh), bfa) → new_ltEs4(wzz670, wzz680, bfg, bfh)
new_primEqInt(Neg(Succ(wzz5000)), Neg(Zero)) → False
new_primEqInt(Neg(Zero), Neg(Succ(wzz40000))) → False
new_primCompAux0(wzz88, GT) → GT
new_ltEs21(wzz101, wzz102, ty_Int) → new_ltEs6(wzz101, wzz102)
new_esEs31(wzz500, wzz4000, ty_Float) → new_esEs16(wzz500, wzz4000)
new_compare26(wzz94, wzz95, True, ddg, cdh) → EQ
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_Int) → new_ltEs6(wzz670, wzz680)
new_esEs27(wzz671, wzz681, app(app(app(ty_@3, gf), gg), gh)) → new_esEs20(wzz671, wzz681, gf, gg, gh)
new_ltEs9(LT, LT) → True
new_esEs32(wzz79, wzz82, ty_Char) → new_esEs17(wzz79, wzz82)
new_esEs4(wzz51, wzz401, app(app(ty_@2, daa), dab)) → new_esEs19(wzz51, wzz401, daa, dab)
new_esEs39(wzz501, wzz4001, app(ty_Maybe, ffb)) → new_esEs12(wzz501, wzz4001, ffb)
new_esEs5(wzz50, wzz400, app(ty_Maybe, cgb)) → new_esEs12(wzz50, wzz400, cgb)
new_ltEs21(wzz101, wzz102, app(app(ty_Either, cfh), cga)) → new_ltEs4(wzz101, wzz102, cfh, cga)
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_esEs28(wzz670, wzz680, ty_@0) → new_esEs18(wzz670, wzz680)
new_compare10(LT, LT) → EQ
new_lt20(wzz78, wzz81, ty_Int) → new_lt8(wzz78, wzz81)
new_ltEs23(wzz671, wzz681, app(ty_Ratio, ega)) → new_ltEs15(wzz671, wzz681, ega)
new_esEs10(wzz50, wzz400, app(app(ty_Either, ede), edf)) → new_esEs15(wzz50, wzz400, ede, edf)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Char, dbb) → new_esEs17(wzz500, wzz4000)
new_primCmpNat0(Succ(wzz500), Succ(wzz4000)) → new_primCmpNat0(wzz500, wzz4000)
new_esEs38(wzz502, wzz4002, app(app(ty_@2, fdb), fdc)) → new_esEs19(wzz502, wzz4002, fdb, fdc)
new_lt23(wzz670, wzz680, ty_@0) → new_lt17(wzz670, wzz680)
new_primEqInt(Pos(Succ(wzz5000)), Pos(Succ(wzz40000))) → new_primEqNat0(wzz5000, wzz40000)
new_lt21(wzz79, wzz82, ty_Bool) → new_lt19(wzz79, wzz82)
new_esEs8(wzz51, wzz401, app(app(ty_Either, fah), fba)) → new_esEs15(wzz51, wzz401, fah, fba)
new_esEs28(wzz670, wzz680, ty_Char) → new_esEs17(wzz670, wzz680)
new_ltEs18(wzz672, wzz682, app(app(app(ty_@3, fc), fd), ff)) → new_ltEs11(wzz672, wzz682, fc, fd, ff)
new_esEs11(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_esEs29(wzz501, wzz4001, app(ty_Maybe, dgc)) → new_esEs12(wzz501, wzz4001, dgc)
new_esEs14(False, True) → False
new_esEs14(True, False) → False
new_esEs38(wzz502, wzz4002, ty_Ordering) → new_esEs21(wzz502, wzz4002)
new_esEs34(wzz112, wzz114, ty_Int) → new_esEs24(wzz112, wzz114)
new_esEs28(wzz670, wzz680, app(app(ty_@2, hd), he)) → new_esEs19(wzz670, wzz680, hd, he)
new_ltEs20(wzz80, wzz83, ty_@0) → new_ltEs16(wzz80, wzz83)
new_primEqNat0(Succ(wzz5000), Succ(wzz40000)) → new_primEqNat0(wzz5000, wzz40000)
new_esEs35(wzz670, wzz680, app(ty_Maybe, ce)) → new_esEs12(wzz670, wzz680, ce)
new_lt21(wzz79, wzz82, ty_Int) → new_lt8(wzz79, wzz82)
new_esEs4(wzz51, wzz401, ty_Integer) → new_esEs23(wzz51, wzz401)
new_esEs39(wzz501, wzz4001, ty_Bool) → new_esEs14(wzz501, wzz4001)
new_esEs9(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_ltEs20(wzz80, wzz83, ty_Char) → new_ltEs5(wzz80, wzz83)
new_esEs39(wzz501, wzz4001, app(ty_[], ffc)) → new_esEs25(wzz501, wzz4001, ffc)
new_ltEs19(wzz94, wzz95, ty_Double) → new_ltEs14(wzz94, wzz95)
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_Float) → new_ltEs12(wzz670, wzz680)
new_ltEs18(wzz672, wzz682, ty_@0) → new_ltEs16(wzz672, wzz682)
new_primCmpInt(Neg(Succ(wzz500)), Neg(wzz400)) → new_primCmpNat0(wzz400, Succ(wzz500))
new_compare31(wzz50, wzz400, ty_@0) → new_compare14(wzz50, wzz400)
new_esEs21(EQ, EQ) → True
new_esEs27(wzz671, wzz681, app(app(ty_Either, hb), hc)) → new_esEs15(wzz671, wzz681, hb, hc)
new_esEs9(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_ltEs13(wzz67, wzz68, bae) → new_fsEs(new_compare0(wzz67, wzz68, bae))
new_primEqInt(Pos(Succ(wzz5000)), Pos(Zero)) → False
new_primEqInt(Pos(Zero), Pos(Succ(wzz40000))) → False
new_esEs8(wzz51, wzz401, ty_Ordering) → new_esEs21(wzz51, wzz401)
new_primPlusNat0(Succ(wzz45200), Zero) → Succ(wzz45200)
new_primPlusNat0(Zero, Succ(wzz13200)) → Succ(wzz13200)
new_esEs30(wzz500, wzz4000, ty_Float) → new_esEs16(wzz500, wzz4000)
new_ltEs23(wzz671, wzz681, ty_Char) → new_ltEs5(wzz671, wzz681)
new_primCmpNat0(Zero, Zero) → EQ
new_esEs32(wzz79, wzz82, ty_@0) → new_esEs18(wzz79, wzz82)
new_compare27(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, True, cba, bhh, caa) → EQ
new_ltEs21(wzz101, wzz102, ty_Double) → new_ltEs14(wzz101, wzz102)
new_primCmpNat0(Succ(wzz500), Zero) → GT
new_esEs38(wzz502, wzz4002, ty_@0) → new_esEs18(wzz502, wzz4002)
new_lt20(wzz78, wzz81, app(app(ty_@2, bhf), bhg)) → new_lt4(wzz78, wzz81, bhf, bhg)
new_esEs33(wzz78, wzz81, ty_Bool) → new_esEs14(wzz78, wzz81)
new_ltEs19(wzz94, wzz95, ty_Ordering) → new_ltEs9(wzz94, wzz95)
new_esEs27(wzz671, wzz681, ty_Ordering) → new_esEs21(wzz671, wzz681)
new_lt23(wzz670, wzz680, ty_Char) → new_lt7(wzz670, wzz680)
new_esEs15(Left(wzz500), Left(wzz4000), app(app(ty_@2, ege), egf), dbb) → new_esEs19(wzz500, wzz4000, ege, egf)
new_ltEs21(wzz101, wzz102, app(ty_Maybe, cfc)) → new_ltEs10(wzz101, wzz102, cfc)
new_primCmpInt(Neg(Zero), Pos(Succ(wzz4000))) → LT
new_compare11(wzz152, wzz153, True, fha, fhb) → LT
new_compare31(wzz50, wzz400, ty_Char) → new_compare12(wzz50, wzz400)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Integer) → new_esEs23(wzz500, wzz4000)
new_lt5(wzz671, wzz681, ty_Char) → new_lt7(wzz671, wzz681)
new_esEs33(wzz78, wzz81, ty_@0) → new_esEs18(wzz78, wzz81)
new_esEs30(wzz500, wzz4000, app(app(ty_Either, dge), dgf)) → new_esEs15(wzz500, wzz4000, dge, dgf)
new_sr0(Integer(wzz4000), Integer(wzz510)) → Integer(new_primMulInt(wzz4000, wzz510))
new_esEs28(wzz670, wzz680, app(ty_Ratio, dcd)) → new_esEs22(wzz670, wzz680, dcd)
new_compare15(Right(wzz50), Right(wzz400), cdd, cde) → new_compare28(wzz50, wzz400, new_esEs11(wzz50, wzz400, cde), cdd, cde)
new_ltEs4(Left(wzz670), Left(wzz680), app(ty_Ratio, che), bfa) → new_ltEs15(wzz670, wzz680, che)
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_Double) → new_esEs13(wzz500, wzz4000)
new_esEs32(wzz79, wzz82, app(ty_Maybe, cce)) → new_esEs12(wzz79, wzz82, cce)
new_compare28(wzz101, wzz102, True, ceh, ecg) → EQ
new_esEs7(wzz52, wzz402, app(ty_Maybe, dfa)) → new_esEs12(wzz52, wzz402, dfa)
new_primEqInt(Pos(Succ(wzz5000)), Neg(wzz4000)) → False
new_primEqInt(Neg(Succ(wzz5000)), Pos(wzz4000)) → False
new_ltEs23(wzz671, wzz681, app(app(app(ty_@3, bd), be), bf)) → new_ltEs11(wzz671, wzz681, bd, be, bf)
new_esEs29(wzz501, wzz4001, ty_Int) → new_esEs24(wzz501, wzz4001)
new_ltEs18(wzz672, wzz682, app(app(ty_Either, fh), ga)) → new_ltEs4(wzz672, wzz682, fh, ga)
new_esEs6(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_compare210(wzz67, wzz68, True, fcg) → EQ
new_esEs7(wzz52, wzz402, app(app(ty_@2, dec), ded)) → new_esEs19(wzz52, wzz402, dec, ded)
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_Char) → new_ltEs5(wzz670, wzz680)
new_esEs37(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Bool) → new_esEs14(wzz500, wzz4000)
new_lt22(wzz112, wzz114, ty_Int) → new_lt8(wzz112, wzz114)
new_esEs15(Right(wzz500), Right(wzz4000), dba, app(app(ty_Either, ehe), ehf)) → new_esEs15(wzz500, wzz4000, ehe, ehf)
new_lt6(wzz670, wzz680, ty_Double) → new_lt15(wzz670, wzz680)
new_esEs8(wzz51, wzz401, ty_Char) → new_esEs17(wzz51, wzz401)
new_esEs35(wzz670, wzz680, app(app(ty_Either, dc), dd)) → new_esEs15(wzz670, wzz680, dc, dd)
new_esEs38(wzz502, wzz4002, app(app(ty_Either, fch), fda)) → new_esEs15(wzz502, wzz4002, fch, fda)
new_primEqInt(Pos(Zero), Neg(Succ(wzz40000))) → False
new_primEqInt(Neg(Zero), Pos(Succ(wzz40000))) → False
new_esEs9(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_esEs10(wzz50, wzz400, app(ty_[], eef)) → new_esEs25(wzz50, wzz400, eef)
new_esEs27(wzz671, wzz681, app(app(ty_@2, gb), gc)) → new_esEs19(wzz671, wzz681, gb, gc)
new_compare31(wzz50, wzz400, ty_Double) → new_compare8(wzz50, wzz400)
new_lt9(wzz5, wzz40) → new_esEs26(new_compare7(wzz5, wzz40))
new_primCmpInt(Pos(Zero), Pos(Succ(wzz4000))) → new_primCmpNat0(Zero, Succ(wzz4000))
new_lt22(wzz112, wzz114, ty_Char) → new_lt7(wzz112, wzz114)
new_lt23(wzz670, wzz680, ty_Int) → new_lt8(wzz670, wzz680)
new_ltEs4(Right(wzz670), Right(wzz680), bga, app(app(ty_@2, bgb), bgc)) → new_ltEs7(wzz670, wzz680, bgb, bgc)
new_esEs10(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_compare29(True, True) → EQ
new_esEs33(wzz78, wzz81, ty_Float) → new_esEs16(wzz78, wzz81)
new_esEs6(wzz50, wzz400, app(ty_Ratio, ddd)) → new_esEs22(wzz50, wzz400, ddd)
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_Char) → new_esEs17(wzz500, wzz4000)
new_lt23(wzz670, wzz680, ty_Bool) → new_lt19(wzz670, wzz680)
new_esEs12(Just(wzz500), Just(wzz4000), ty_@0) → new_esEs18(wzz500, wzz4000)
new_esEs5(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_lt23(wzz670, wzz680, ty_Integer) → new_lt9(wzz670, wzz680)
new_compare15(Left(wzz50), Left(wzz400), cdd, cde) → new_compare26(wzz50, wzz400, new_esEs10(wzz50, wzz400, cdd), cdd, cde)
new_primCompAux0(wzz88, LT) → LT
new_esEs38(wzz502, wzz4002, app(app(app(ty_@3, fdd), fde), fdf)) → new_esEs20(wzz502, wzz4002, fdd, fde, fdf)
new_lt20(wzz78, wzz81, ty_Bool) → new_lt19(wzz78, wzz81)
new_ltEs10(Nothing, Nothing, eda) → True
new_esEs28(wzz670, wzz680, ty_Ordering) → new_esEs21(wzz670, wzz680)
new_not(False) → True
new_ltEs4(Right(wzz670), Left(wzz680), bga, bfa) → False
new_compare13(Nothing, Nothing, bef) → EQ
new_esEs32(wzz79, wzz82, app(app(ty_@2, ccc), ccd)) → new_esEs19(wzz79, wzz82, ccc, ccd)
new_esEs30(wzz500, wzz4000, app(app(app(ty_@3, dha), dhb), dhc)) → new_esEs20(wzz500, wzz4000, dha, dhb, dhc)
new_ltEs22(wzz113, wzz115, app(app(ty_Either, bed), bee)) → new_ltEs4(wzz113, wzz115, bed, bee)
new_esEs40(wzz500, wzz4000, app(app(ty_Either, ffd), ffe)) → new_esEs15(wzz500, wzz4000, ffd, ffe)
new_esEs29(wzz501, wzz4001, ty_@0) → new_esEs18(wzz501, wzz4001)
new_primCmpInt(Pos(Succ(wzz500)), Pos(wzz400)) → new_primCmpNat0(Succ(wzz500), wzz400)
new_compare110(wzz143, wzz144, True, fag) → LT
new_esEs40(wzz500, wzz4000, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_ltEs6(wzz67, wzz68) → new_fsEs(new_compare9(wzz67, wzz68))
new_compare16(:%(wzz50, wzz51), :%(wzz400, wzz401), ty_Int) → new_compare9(new_sr(wzz50, wzz401), new_sr(wzz400, wzz51))
new_esEs37(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs15(Right(wzz500), Right(wzz4000), dba, app(ty_[], faf)) → new_esEs25(wzz500, wzz4000, faf)
new_ltEs9(LT, GT) → True
new_esEs5(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_ltEs24(wzz67, wzz68, ty_Float) → new_ltEs12(wzz67, wzz68)
new_esEs7(wzz52, wzz402, ty_@0) → new_esEs18(wzz52, wzz402)
new_ltEs10(Just(wzz670), Just(wzz680), app(ty_[], ec)) → new_ltEs13(wzz670, wzz680, ec)
new_compare13(Nothing, Just(wzz400), bef) → LT
new_esEs6(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_ltEs19(wzz94, wzz95, ty_Int) → new_ltEs6(wzz94, wzz95)
new_esEs8(wzz51, wzz401, ty_Bool) → new_esEs14(wzz51, wzz401)
new_esEs25([], :(wzz4000, wzz4001), dca) → False
new_esEs25(:(wzz500, wzz501), [], dca) → False
new_ltEs24(wzz67, wzz68, ty_Integer) → new_ltEs8(wzz67, wzz68)
new_compare17(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, True, wzz191, fgf, fgg, fgh) → new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, True, fgf, fgg, fgh)
new_esEs35(wzz670, wzz680, ty_Double) → new_esEs13(wzz670, wzz680)
new_compare0(:(wzz50, wzz51), [], baf) → GT
new_lt6(wzz670, wzz680, app(app(ty_Either, bac), bad)) → new_lt18(wzz670, wzz680, bac, bad)
new_compare10(LT, GT) → LT
new_esEs35(wzz670, wzz680, ty_Char) → new_esEs17(wzz670, wzz680)
new_ltEs22(wzz113, wzz115, ty_Char) → new_ltEs5(wzz113, wzz115)
new_lt22(wzz112, wzz114, ty_Float) → new_lt13(wzz112, wzz114)
new_ltEs18(wzz672, wzz682, ty_Int) → new_ltEs6(wzz672, wzz682)
new_lt6(wzz670, wzz680, app(ty_Maybe, hf)) → new_lt11(wzz670, wzz680, hf)
new_esEs11(wzz50, wzz400, app(ty_Ratio, eff)) → new_esEs22(wzz50, wzz400, eff)
new_lt6(wzz670, wzz680, ty_@0) → new_lt17(wzz670, wzz680)
new_esEs29(wzz501, wzz4001, app(ty_[], dgd)) → new_esEs25(wzz501, wzz4001, dgd)
new_compare11(wzz152, wzz153, False, fha, fhb) → GT
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_primCmpInt(Pos(Succ(wzz500)), Neg(wzz400)) → GT
new_esEs5(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_esEs8(wzz51, wzz401, ty_Int) → new_esEs24(wzz51, wzz401)
new_lt20(wzz78, wzz81, ty_Double) → new_lt15(wzz78, wzz81)
new_primMulInt(Pos(wzz510), Pos(wzz4010)) → Pos(new_primMulNat0(wzz510, wzz4010))
new_esEs7(wzz52, wzz402, ty_Char) → new_esEs17(wzz52, wzz402)
new_compare25(wzz112, wzz113, wzz114, wzz115, False, bdd, bcd) → new_compare19(wzz112, wzz113, wzz114, wzz115, new_lt22(wzz112, wzz114, bdd), new_asAs(new_esEs34(wzz112, wzz114, bdd), new_ltEs22(wzz113, wzz115, bcd)), bdd, bcd)
new_esEs27(wzz671, wzz681, ty_Char) → new_esEs17(wzz671, wzz681)
new_esEs11(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_ltEs20(wzz80, wzz83, ty_Bool) → new_ltEs17(wzz80, wzz83)
new_primMulInt(Neg(wzz510), Neg(wzz4010)) → Pos(new_primMulNat0(wzz510, wzz4010))
new_esEs39(wzz501, wzz4001, ty_Integer) → new_esEs23(wzz501, wzz4001)
new_compare15(Right(wzz50), Left(wzz400), cdd, cde) → GT
new_esEs39(wzz501, wzz4001, ty_Ordering) → new_esEs21(wzz501, wzz4001)
new_ltEs23(wzz671, wzz681, app(app(ty_@2, ba), bb)) → new_ltEs7(wzz671, wzz681, ba, bb)
new_primEqNat0(Zero, Succ(wzz40000)) → False
new_primEqNat0(Succ(wzz5000), Zero) → False
new_lt23(wzz670, wzz680, app(ty_Maybe, ce)) → new_lt11(wzz670, wzz680, ce)
new_ltEs24(wzz67, wzz68, ty_Double) → new_ltEs14(wzz67, wzz68)
new_primPlusNat0(Zero, Zero) → Zero
new_lt20(wzz78, wzz81, app(app(ty_Either, cag), cah)) → new_lt18(wzz78, wzz81, cag, cah)
new_esEs7(wzz52, wzz402, ty_Ordering) → new_esEs21(wzz52, wzz402)
new_lt20(wzz78, wzz81, ty_@0) → new_lt17(wzz78, wzz81)
new_esEs7(wzz52, wzz402, ty_Float) → new_esEs16(wzz52, wzz402)
new_esEs39(wzz501, wzz4001, ty_Char) → new_esEs17(wzz501, wzz4001)
new_compare19(wzz169, wzz170, wzz171, wzz172, False, wzz174, fce, fcf) → new_compare111(wzz169, wzz170, wzz171, wzz172, wzz174, fce, fcf)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs33(wzz78, wzz81, app(ty_Ratio, ebb)) → new_esEs22(wzz78, wzz81, ebb)
new_ltEs18(wzz672, wzz682, ty_Bool) → new_ltEs17(wzz672, wzz682)
new_esEs11(wzz50, wzz400, app(app(app(ty_@3, efc), efd), efe)) → new_esEs20(wzz50, wzz400, efc, efd, efe)
new_ltEs21(wzz101, wzz102, app(app(ty_@2, cfa), cfb)) → new_ltEs7(wzz101, wzz102, cfa, cfb)
new_esEs34(wzz112, wzz114, ty_Bool) → new_esEs14(wzz112, wzz114)
new_esEs40(wzz500, wzz4000, app(app(ty_@2, fff), ffg)) → new_esEs19(wzz500, wzz4000, fff, ffg)
new_esEs5(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_esEs27(wzz671, wzz681, app(ty_Ratio, dcc)) → new_esEs22(wzz671, wzz681, dcc)
new_esEs33(wzz78, wzz81, ty_Char) → new_esEs17(wzz78, wzz81)
new_lt12(wzz5, wzz40, bhc, bhd, bhe) → new_esEs26(new_compare30(wzz5, wzz40, bhc, bhd, bhe))
new_ltEs9(GT, GT) → True
new_esEs9(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_ltEs21(wzz101, wzz102, ty_Char) → new_ltEs5(wzz101, wzz102)
new_esEs11(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_esEs40(wzz500, wzz4000, app(ty_Ratio, fgc)) → new_esEs22(wzz500, wzz4000, fgc)
new_ltEs4(Left(wzz670), Left(wzz680), app(app(app(ty_@3, bfc), bfd), bfe), bfa) → new_ltEs11(wzz670, wzz680, bfc, bfd, bfe)
new_lt22(wzz112, wzz114, app(ty_Ratio, edc)) → new_lt16(wzz112, wzz114, edc)
new_esEs33(wzz78, wzz81, app(ty_[], caf)) → new_esEs25(wzz78, wzz81, caf)
new_ltEs4(Right(wzz670), Right(wzz680), bga, app(ty_Ratio, chf)) → new_ltEs15(wzz670, wzz680, chf)
new_ltEs22(wzz113, wzz115, ty_Float) → new_ltEs12(wzz113, wzz115)
new_esEs15(Right(wzz500), Right(wzz4000), dba, app(app(app(ty_@3, faa), fab), fac)) → new_esEs20(wzz500, wzz4000, faa, fab, fac)
new_esEs8(wzz51, wzz401, ty_@0) → new_esEs18(wzz51, wzz401)
new_esEs34(wzz112, wzz114, ty_Ordering) → new_esEs21(wzz112, wzz114)
new_esEs33(wzz78, wzz81, ty_Ordering) → new_esEs21(wzz78, wzz81)
new_primCmpInt(Neg(Zero), Neg(Succ(wzz4000))) → new_primCmpNat0(Succ(wzz4000), Zero)
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_Bool) → new_ltEs17(wzz670, wzz680)
new_primCmpInt(Pos(Zero), Neg(Succ(wzz4000))) → GT
new_esEs10(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Bool, dbb) → new_esEs14(wzz500, wzz4000)
new_compare110(wzz143, wzz144, False, fag) → GT
new_lt10(wzz5, wzz40) → new_esEs26(new_compare10(wzz5, wzz40))
new_lt21(wzz79, wzz82, app(ty_[], cda)) → new_lt14(wzz79, wzz82, cda)
new_lt20(wzz78, wzz81, ty_Char) → new_lt7(wzz78, wzz81)
new_compare0(:(wzz50, wzz51), :(wzz400, wzz401), baf) → new_primCompAux1(wzz50, wzz400, new_compare0(wzz51, wzz401, baf), baf)
new_ltEs10(Just(wzz670), Nothing, eda) → False
new_ltEs19(wzz94, wzz95, ty_Bool) → new_ltEs17(wzz94, wzz95)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Int, bfa) → new_ltEs6(wzz670, wzz680)
new_esEs39(wzz501, wzz4001, app(app(app(ty_@3, fef), feg), feh)) → new_esEs20(wzz501, wzz4001, fef, feg, feh)
new_ltEs18(wzz672, wzz682, ty_Float) → new_ltEs12(wzz672, wzz682)
new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, False, fgf, fgg, fgh) → GT
new_lt5(wzz671, wzz681, ty_Integer) → new_lt9(wzz671, wzz681)
new_esEs5(wzz50, wzz400, app(app(ty_@2, dbc), dbd)) → new_esEs19(wzz50, wzz400, dbc, dbd)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Ordering) → new_ltEs9(wzz670, wzz680)
new_ltEs22(wzz113, wzz115, app(ty_Ratio, edd)) → new_ltEs15(wzz113, wzz115, edd)
new_esEs29(wzz501, wzz4001, ty_Integer) → new_esEs23(wzz501, wzz4001)
new_esEs5(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_ltEs10(Nothing, Just(wzz680), eda) → True
new_ltEs21(wzz101, wzz102, ty_@0) → new_ltEs16(wzz101, wzz102)
new_esEs10(wzz50, wzz400, app(ty_Ratio, eed)) → new_esEs22(wzz50, wzz400, eed)
new_esEs15(Left(wzz500), Left(wzz4000), ty_@0, dbb) → new_esEs18(wzz500, wzz4000)
new_compare18(wzz159, wzz160, True, fcb, fcc) → LT
new_lt6(wzz670, wzz680, ty_Bool) → new_lt19(wzz670, wzz680)
new_ltEs21(wzz101, wzz102, ty_Integer) → new_ltEs8(wzz101, wzz102)
new_esEs33(wzz78, wzz81, app(ty_Maybe, cab)) → new_esEs12(wzz78, wzz81, cab)
new_ltEs18(wzz672, wzz682, app(ty_Maybe, fb)) → new_ltEs10(wzz672, wzz682, fb)
new_esEs28(wzz670, wzz680, app(ty_[], bab)) → new_esEs25(wzz670, wzz680, bab)
new_ltEs22(wzz113, wzz115, app(ty_[], bec)) → new_ltEs13(wzz113, wzz115, bec)
new_ltEs24(wzz67, wzz68, app(ty_Ratio, eba)) → new_ltEs15(wzz67, wzz68, eba)
new_ltEs24(wzz67, wzz68, ty_Bool) → new_ltEs17(wzz67, wzz68)
new_ltEs21(wzz101, wzz102, ty_Ordering) → new_ltEs9(wzz101, wzz102)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCompAux1(wzz50, wzz400, wzz51, baf) → new_primCompAux0(wzz51, new_compare31(wzz50, wzz400, baf))
new_esEs32(wzz79, wzz82, ty_Double) → new_esEs13(wzz79, wzz82)
new_compare10(GT, GT) → EQ
new_esEs9(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_lt6(wzz670, wzz680, app(app(ty_@2, hd), he)) → new_lt4(wzz670, wzz680, hd, he)
new_lt22(wzz112, wzz114, ty_Ordering) → new_lt10(wzz112, wzz114)
new_esEs4(wzz51, wzz401, ty_@0) → new_esEs18(wzz51, wzz401)
new_ltEs5(wzz67, wzz68) → new_fsEs(new_compare12(wzz67, wzz68))
new_esEs30(wzz500, wzz4000, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_ltEs4(Right(wzz670), Right(wzz680), bga, ty_Integer) → new_ltEs8(wzz670, wzz680)
new_esEs4(wzz51, wzz401, app(ty_[], dah)) → new_esEs25(wzz51, wzz401, dah)
new_lt22(wzz112, wzz114, app(app(app(ty_@3, bcf), bcg), bch)) → new_lt12(wzz112, wzz114, bcf, bcg, bch)
new_asAs(False, wzz130) → False
new_ltEs19(wzz94, wzz95, app(app(ty_@2, cdf), cdg)) → new_ltEs7(wzz94, wzz95, cdf, cdg)
new_esEs9(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_primMulInt(Neg(wzz510), Pos(wzz4010)) → Neg(new_primMulNat0(wzz510, wzz4010))
new_primMulInt(Pos(wzz510), Neg(wzz4010)) → Neg(new_primMulNat0(wzz510, wzz4010))
new_esEs32(wzz79, wzz82, ty_Int) → new_esEs24(wzz79, wzz82)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Double) → new_esEs13(wzz500, wzz4000)
new_esEs6(wzz50, wzz400, app(ty_Maybe, dde)) → new_esEs12(wzz50, wzz400, dde)
new_esEs27(wzz671, wzz681, ty_Double) → new_esEs13(wzz671, wzz681)
new_primMulNat0(Succ(wzz5100), Zero) → Zero
new_primMulNat0(Zero, Succ(wzz40100)) → Zero
new_ltEs22(wzz113, wzz115, app(ty_Maybe, bdg)) → new_ltEs10(wzz113, wzz115, bdg)
new_ltEs4(Left(wzz670), Left(wzz680), app(ty_[], bff), bfa) → new_ltEs13(wzz670, wzz680, bff)
new_lt5(wzz671, wzz681, ty_Int) → new_lt8(wzz671, wzz681)
new_lt20(wzz78, wzz81, app(ty_[], caf)) → new_lt14(wzz78, wzz81, caf)
new_esEs6(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_ltEs18(wzz672, wzz682, app(app(ty_@2, eh), fa)) → new_ltEs7(wzz672, wzz682, eh, fa)
new_esEs15(Left(wzz500), Left(wzz4000), app(ty_Maybe, ehc), dbb) → new_esEs12(wzz500, wzz4000, ehc)
new_ltEs8(wzz67, wzz68) → new_fsEs(new_compare7(wzz67, wzz68))
new_esEs4(wzz51, wzz401, app(ty_Maybe, dag)) → new_esEs12(wzz51, wzz401, dag)
new_esEs29(wzz501, wzz4001, ty_Char) → new_esEs17(wzz501, wzz4001)
new_compare31(wzz50, wzz400, app(app(ty_@2, bag), bah)) → new_compare5(wzz50, wzz400, bag, bah)
new_compare26(wzz94, wzz95, False, ddg, cdh) → new_compare11(wzz94, wzz95, new_ltEs19(wzz94, wzz95, ddg), ddg, cdh)
new_esEs30(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs29(wzz501, wzz4001, ty_Double) → new_esEs13(wzz501, wzz4001)
new_esEs5(wzz50, wzz400, app(ty_[], dca)) → new_esEs25(wzz50, wzz400, dca)
new_lt5(wzz671, wzz681, ty_Float) → new_lt13(wzz671, wzz681)
new_lt5(wzz671, wzz681, app(app(app(ty_@3, gf), gg), gh)) → new_lt12(wzz671, wzz681, gf, gg, gh)
new_esEs28(wzz670, wzz680, ty_Bool) → new_esEs14(wzz670, wzz680)
new_ltEs20(wzz80, wzz83, ty_Ordering) → new_ltEs9(wzz80, wzz83)
new_ltEs21(wzz101, wzz102, app(ty_Ratio, ech)) → new_ltEs15(wzz101, wzz102, ech)
new_ltEs22(wzz113, wzz115, ty_Integer) → new_ltEs8(wzz113, wzz115)
new_esEs35(wzz670, wzz680, app(app(app(ty_@3, cf), cg), da)) → new_esEs20(wzz670, wzz680, cf, cg, da)
new_esEs31(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_compare31(wzz50, wzz400, app(ty_[], bbe)) → new_compare0(wzz50, wzz400, bbe)
new_lt23(wzz670, wzz680, app(ty_[], db)) → new_lt14(wzz670, wzz680, db)
new_ltEs17(True, True) → True
new_ltEs18(wzz672, wzz682, ty_Char) → new_ltEs5(wzz672, wzz682)
new_lt5(wzz671, wzz681, app(app(ty_Either, hb), hc)) → new_lt18(wzz671, wzz681, hb, hc)
new_compare30(@3(wzz50, wzz51, wzz52), @3(wzz400, wzz401, wzz402), bhc, bhd, bhe) → new_compare27(wzz50, wzz51, wzz52, wzz400, wzz401, wzz402, new_asAs(new_esEs9(wzz50, wzz400, bhc), new_asAs(new_esEs8(wzz51, wzz401, bhd), new_esEs7(wzz52, wzz402, bhe))), bhc, bhd, bhe)
new_esEs38(wzz502, wzz4002, ty_Double) → new_esEs13(wzz502, wzz4002)
new_lt20(wzz78, wzz81, ty_Float) → new_lt13(wzz78, wzz81)
new_ltEs16(wzz67, wzz68) → new_fsEs(new_compare14(wzz67, wzz68))
new_lt22(wzz112, wzz114, app(app(ty_Either, bdb), bdc)) → new_lt18(wzz112, wzz114, bdb, bdc)
new_esEs24(wzz50, wzz400) → new_primEqInt(wzz50, wzz400)
new_compare18(wzz159, wzz160, False, fcb, fcc) → GT
new_compare111(wzz169, wzz170, wzz171, wzz172, False, fce, fcf) → GT
new_esEs40(wzz500, wzz4000, app(app(app(ty_@3, ffh), fga), fgb)) → new_esEs20(wzz500, wzz4000, ffh, fga, fgb)
new_esEs33(wzz78, wzz81, app(app(ty_@2, bhf), bhg)) → new_esEs19(wzz78, wzz81, bhf, bhg)
new_esEs30(wzz500, wzz4000, app(ty_[], dhf)) → new_esEs25(wzz500, wzz4000, dhf)
new_compare5(@2(wzz50, wzz51), @2(wzz400, wzz401), bbh, bca) → new_compare25(wzz50, wzz51, wzz400, wzz401, new_asAs(new_esEs5(wzz50, wzz400, bbh), new_esEs4(wzz51, wzz401, bca)), bbh, bca)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Integer, bfa) → new_ltEs8(wzz670, wzz680)
new_lt11(wzz5, wzz40, bef) → new_esEs26(new_compare13(wzz5, wzz40, bef))
new_esEs30(wzz500, wzz4000, ty_@0) → new_esEs18(wzz500, wzz4000)
new_ltEs14(wzz67, wzz68) → new_fsEs(new_compare8(wzz67, wzz68))
new_esEs14(True, True) → True
new_ltEs9(GT, EQ) → False
new_lt22(wzz112, wzz114, ty_Double) → new_lt15(wzz112, wzz114)
new_esEs27(wzz671, wzz681, ty_Bool) → new_esEs14(wzz671, wzz681)
new_lt22(wzz112, wzz114, ty_Integer) → new_lt9(wzz112, wzz114)
new_compare31(wzz50, wzz400, app(ty_Ratio, fhc)) → new_compare16(wzz50, wzz400, fhc)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Float) → new_ltEs12(wzz670, wzz680)
new_esEs33(wzz78, wzz81, app(app(ty_Either, cag), cah)) → new_esEs15(wzz78, wzz81, cag, cah)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Int, dbb) → new_esEs24(wzz500, wzz4000)
new_esEs39(wzz501, wzz4001, ty_Int) → new_esEs24(wzz501, wzz4001)
new_esEs4(wzz51, wzz401, ty_Double) → new_esEs13(wzz51, wzz401)
new_esEs21(LT, GT) → False
new_esEs21(GT, LT) → False
new_lt19(wzz5, wzz40) → new_esEs26(new_compare29(wzz5, wzz40))
new_lt23(wzz670, wzz680, app(app(ty_@2, cb), cc)) → new_lt4(wzz670, wzz680, cb, cc)
new_ltEs19(wzz94, wzz95, app(app(app(ty_@3, ceb), cec), ced)) → new_ltEs11(wzz94, wzz95, ceb, cec, ced)
new_esEs6(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_esEs34(wzz112, wzz114, ty_Char) → new_esEs17(wzz112, wzz114)
new_esEs40(wzz500, wzz4000, app(ty_Maybe, fgd)) → new_esEs12(wzz500, wzz4000, fgd)
new_esEs11(wzz50, wzz400, app(app(ty_@2, efa), efb)) → new_esEs19(wzz50, wzz400, efa, efb)
new_compare31(wzz50, wzz400, ty_Float) → new_compare6(wzz50, wzz400)
new_esEs9(wzz50, wzz400, app(ty_Maybe, ece)) → new_esEs12(wzz50, wzz400, ece)
new_lt22(wzz112, wzz114, app(ty_Maybe, bce)) → new_lt11(wzz112, wzz114, bce)
new_lt5(wzz671, wzz681, ty_Ordering) → new_lt10(wzz671, wzz681)
new_esEs4(wzz51, wzz401, ty_Ordering) → new_esEs21(wzz51, wzz401)
new_esEs28(wzz670, wzz680, app(app(ty_Either, bac), bad)) → new_esEs15(wzz670, wzz680, bac, bad)
new_compare8(Double(wzz50, wzz51), Double(wzz400, wzz401)) → new_compare9(new_sr(wzz50, wzz400), new_sr(wzz51, wzz401))
new_esEs15(Right(wzz500), Right(wzz4000), dba, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_ltEs19(wzz94, wzz95, app(ty_Maybe, cea)) → new_ltEs10(wzz94, wzz95, cea)
new_compare16(:%(wzz50, wzz51), :%(wzz400, wzz401), ty_Integer) → new_compare7(new_sr0(wzz50, wzz401), new_sr0(wzz400, wzz51))
new_ltEs18(wzz672, wzz682, ty_Double) → new_ltEs14(wzz672, wzz682)
new_esEs40(wzz500, wzz4000, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_compare7(Integer(wzz50), Integer(wzz400)) → new_primCmpInt(wzz50, wzz400)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Float, dbb) → new_esEs16(wzz500, wzz4000)
new_esEs33(wzz78, wzz81, ty_Int) → new_esEs24(wzz78, wzz81)
new_ltEs17(False, True) → True
new_ltEs18(wzz672, wzz682, ty_Ordering) → new_ltEs9(wzz672, wzz682)
new_esEs4(wzz51, wzz401, ty_Float) → new_esEs16(wzz51, wzz401)
new_ltEs21(wzz101, wzz102, ty_Bool) → new_ltEs17(wzz101, wzz102)
new_esEs40(wzz500, wzz4000, app(ty_[], fge)) → new_esEs25(wzz500, wzz4000, fge)
new_esEs33(wzz78, wzz81, ty_Double) → new_esEs13(wzz78, wzz81)
new_esEs14(False, False) → True
new_esEs7(wzz52, wzz402, app(app(ty_Either, dea), deb)) → new_esEs15(wzz52, wzz402, dea, deb)
new_esEs31(wzz500, wzz4000, app(ty_Ratio, eaf)) → new_esEs22(wzz500, wzz4000, eaf)
new_ltEs20(wzz80, wzz83, ty_Integer) → new_ltEs8(wzz80, wzz83)
new_esEs30(wzz500, wzz4000, ty_Char) → new_esEs17(wzz500, wzz4000)
new_ltEs22(wzz113, wzz115, ty_Int) → new_ltEs6(wzz113, wzz115)
new_ltEs22(wzz113, wzz115, app(app(ty_@2, bde), bdf)) → new_ltEs7(wzz113, wzz115, bde, bdf)
new_lt21(wzz79, wzz82, app(app(ty_Either, cdb), cdc)) → new_lt18(wzz79, wzz82, cdb, cdc)
new_lt21(wzz79, wzz82, app(app(ty_@2, ccc), ccd)) → new_lt4(wzz79, wzz82, ccc, ccd)
new_esEs11(wzz50, wzz400, app(ty_[], efh)) → new_esEs25(wzz50, wzz400, efh)
new_esEs15(Right(wzz500), Right(wzz4000), dba, app(ty_Maybe, fae)) → new_esEs12(wzz500, wzz4000, fae)
new_esEs25(:(wzz500, wzz501), :(wzz4000, wzz4001), dca) → new_asAs(new_esEs31(wzz500, wzz4000, dca), new_esEs25(wzz501, wzz4001, dca))
new_lt6(wzz670, wzz680, ty_Float) → new_lt13(wzz670, wzz680)
new_esEs5(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_ltEs15(wzz67, wzz68, eba) → new_fsEs(new_compare16(wzz67, wzz68, eba))
new_esEs15(Left(wzz500), Left(wzz4000), ty_Double, dbb) → new_esEs13(wzz500, wzz4000)
new_primMulNat0(Succ(wzz5100), Succ(wzz40100)) → new_primPlusNat0(new_primMulNat0(wzz5100, Succ(wzz40100)), Succ(wzz40100))
new_ltEs21(wzz101, wzz102, ty_Float) → new_ltEs12(wzz101, wzz102)
new_esEs10(wzz50, wzz400, app(app(ty_@2, edg), edh)) → new_esEs19(wzz50, wzz400, edg, edh)
new_esEs12(Just(wzz500), Just(wzz4000), app(ty_Maybe, chc)) → new_esEs12(wzz500, wzz4000, chc)
new_primPlusNat0(Succ(wzz45200), Succ(wzz13200)) → Succ(Succ(new_primPlusNat0(wzz45200, wzz13200)))
new_ltEs24(wzz67, wzz68, app(ty_[], bae)) → new_ltEs13(wzz67, wzz68, bae)
new_esEs8(wzz51, wzz401, ty_Integer) → new_esEs23(wzz51, wzz401)
new_lt20(wzz78, wzz81, ty_Ordering) → new_lt10(wzz78, wzz81)
new_esEs31(wzz500, wzz4000, ty_@0) → new_esEs18(wzz500, wzz4000)
new_esEs9(wzz50, wzz400, app(app(app(ty_@3, eca), ecb), ecc)) → new_esEs20(wzz50, wzz400, eca, ecb, ecc)
new_compare0([], :(wzz400, wzz401), baf) → LT
new_esEs11(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_esEs15(Left(wzz500), Left(wzz4000), app(app(app(ty_@3, egg), egh), eha), dbb) → new_esEs20(wzz500, wzz4000, egg, egh, eha)
new_esEs26(LT) → True
new_esEs12(Just(wzz500), Just(wzz4000), app(app(ty_@2, cge), cgf)) → new_esEs19(wzz500, wzz4000, cge, cgf)
new_asAs(True, wzz130) → wzz130
new_ltEs7(@2(wzz670, wzz671), @2(wzz680, wzz681), h, cd) → new_pePe(new_lt23(wzz670, wzz680, h), new_asAs(new_esEs35(wzz670, wzz680, h), new_ltEs23(wzz671, wzz681, cd)))
new_esEs7(wzz52, wzz402, app(ty_Ratio, deh)) → new_esEs22(wzz52, wzz402, deh)
new_esEs27(wzz671, wzz681, ty_Float) → new_esEs16(wzz671, wzz681)
new_esEs28(wzz670, wzz680, app(app(app(ty_@3, hg), hh), baa)) → new_esEs20(wzz670, wzz680, hg, hh, baa)
new_esEs11(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_esEs29(wzz501, wzz4001, ty_Ordering) → new_esEs21(wzz501, wzz4001)
new_esEs38(wzz502, wzz4002, ty_Int) → new_esEs24(wzz502, wzz4002)
new_esEs39(wzz501, wzz4001, ty_Float) → new_esEs16(wzz501, wzz4001)
new_esEs40(wzz500, wzz4000, ty_Char) → new_esEs17(wzz500, wzz4000)
new_esEs9(wzz50, wzz400, app(ty_[], ecf)) → new_esEs25(wzz50, wzz400, ecf)
new_esEs4(wzz51, wzz401, app(app(app(ty_@3, dac), dad), dae)) → new_esEs20(wzz51, wzz401, dac, dad, dae)
new_esEs39(wzz501, wzz4001, ty_Double) → new_esEs13(wzz501, wzz4001)
new_ltEs19(wzz94, wzz95, ty_Float) → new_ltEs12(wzz94, wzz95)
new_compare13(Just(wzz50), Just(wzz400), bef) → new_compare210(wzz50, wzz400, new_esEs6(wzz50, wzz400, bef), bef)
new_compare31(wzz50, wzz400, ty_Int) → new_compare9(wzz50, wzz400)
new_lt22(wzz112, wzz114, app(ty_[], bda)) → new_lt14(wzz112, wzz114, bda)
new_esEs28(wzz670, wzz680, app(ty_Maybe, hf)) → new_esEs12(wzz670, wzz680, hf)
new_esEs34(wzz112, wzz114, app(ty_[], bda)) → new_esEs25(wzz112, wzz114, bda)
new_esEs23(Integer(wzz500), Integer(wzz4000)) → new_primEqInt(wzz500, wzz4000)
new_ltEs10(Just(wzz670), Just(wzz680), app(app(ty_@2, de), df)) → new_ltEs7(wzz670, wzz680, de, df)
new_esEs27(wzz671, wzz681, ty_Integer) → new_esEs23(wzz671, wzz681)
new_esEs18(@0, @0) → True
new_esEs9(wzz50, wzz400, app(ty_Ratio, ecd)) → new_esEs22(wzz50, wzz400, ecd)
new_compare15(Left(wzz50), Right(wzz400), cdd, cde) → LT
new_ltEs19(wzz94, wzz95, ty_Char) → new_ltEs5(wzz94, wzz95)
new_ltEs24(wzz67, wzz68, app(app(ty_Either, bga), bfa)) → new_ltEs4(wzz67, wzz68, bga, bfa)
new_esEs19(@2(wzz500, wzz501), @2(wzz4000, wzz4001), dbc, dbd) → new_asAs(new_esEs30(wzz500, wzz4000, dbc), new_esEs29(wzz501, wzz4001, dbd))
new_esEs34(wzz112, wzz114, app(app(ty_@2, bcb), bcc)) → new_esEs19(wzz112, wzz114, bcb, bcc)
new_ltEs22(wzz113, wzz115, ty_@0) → new_ltEs16(wzz113, wzz115)
new_ltEs20(wzz80, wzz83, app(ty_Maybe, cbd)) → new_ltEs10(wzz80, wzz83, cbd)
new_ltEs22(wzz113, wzz115, ty_Ordering) → new_ltEs9(wzz113, wzz115)
new_esEs12(Just(wzz500), Just(wzz4000), app(ty_Ratio, chb)) → new_esEs22(wzz500, wzz4000, chb)
new_compare10(GT, EQ) → GT
new_esEs33(wzz78, wzz81, ty_Integer) → new_esEs23(wzz78, wzz81)
new_esEs31(wzz500, wzz4000, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_lt5(wzz671, wzz681, ty_Double) → new_lt15(wzz671, wzz681)
new_esEs21(LT, EQ) → False
new_esEs21(EQ, LT) → False
new_lt23(wzz670, wzz680, app(app(ty_Either, dc), dd)) → new_lt18(wzz670, wzz680, dc, dd)
new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, True, fgf, fgg, fgh) → LT
new_esEs31(wzz500, wzz4000, app(app(app(ty_@3, eac), ead), eae)) → new_esEs20(wzz500, wzz4000, eac, ead, eae)
new_esEs32(wzz79, wzz82, app(ty_[], cda)) → new_esEs25(wzz79, wzz82, cda)
new_lt5(wzz671, wzz681, app(ty_Maybe, ge)) → new_lt11(wzz671, wzz681, ge)
new_compare29(True, False) → GT
new_ltEs20(wzz80, wzz83, ty_Int) → new_ltEs6(wzz80, wzz83)
new_esEs29(wzz501, wzz4001, ty_Bool) → new_esEs14(wzz501, wzz4001)
new_esEs38(wzz502, wzz4002, app(ty_Ratio, fdg)) → new_esEs22(wzz502, wzz4002, fdg)
new_lt6(wzz670, wzz680, ty_Ordering) → new_lt10(wzz670, wzz680)
new_lt23(wzz670, wzz680, ty_Float) → new_lt13(wzz670, wzz680)
new_esEs36(wzz501, wzz4001, ty_Int) → new_esEs24(wzz501, wzz4001)
new_ltEs24(wzz67, wzz68, ty_Int) → new_ltEs6(wzz67, wzz68)
new_ltEs4(Left(wzz670), Left(wzz680), app(app(ty_@2, beg), beh), bfa) → new_ltEs7(wzz670, wzz680, beg, beh)
new_lt21(wzz79, wzz82, app(app(app(ty_@3, ccf), ccg), cch)) → new_lt12(wzz79, wzz82, ccf, ccg, cch)
new_esEs39(wzz501, wzz4001, app(app(ty_@2, fed), fee)) → new_esEs19(wzz501, wzz4001, fed, fee)
new_compare13(Just(wzz50), Nothing, bef) → GT
new_fsEs(wzz197) → new_not(new_esEs21(wzz197, GT))
new_ltEs21(wzz101, wzz102, app(ty_[], cfg)) → new_ltEs13(wzz101, wzz102, cfg)
new_compare31(wzz50, wzz400, app(ty_Maybe, bba)) → new_compare13(wzz50, wzz400, bba)
new_compare27(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cba, bhh, caa) → new_compare17(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, new_lt20(wzz78, wzz81, cba), new_asAs(new_esEs33(wzz78, wzz81, cba), new_pePe(new_lt21(wzz79, wzz82, bhh), new_asAs(new_esEs32(wzz79, wzz82, bhh), new_ltEs20(wzz80, wzz83, caa)))), cba, bhh, caa)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(wzz88, EQ) → wzz88
new_esEs5(wzz50, wzz400, app(app(ty_Either, dba), dbb)) → new_esEs15(wzz50, wzz400, dba, dbb)
new_ltEs10(Just(wzz670), Just(wzz680), app(app(app(ty_@3, dh), ea), eb)) → new_ltEs11(wzz670, wzz680, dh, ea, eb)
new_esEs38(wzz502, wzz4002, ty_Integer) → new_esEs23(wzz502, wzz4002)
new_ltEs19(wzz94, wzz95, ty_@0) → new_ltEs16(wzz94, wzz95)
new_ltEs18(wzz672, wzz682, ty_Integer) → new_ltEs8(wzz672, wzz682)
new_esEs31(wzz500, wzz4000, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_ltEs19(wzz94, wzz95, app(ty_[], cee)) → new_ltEs13(wzz94, wzz95, cee)
new_esEs4(wzz51, wzz401, ty_Int) → new_esEs24(wzz51, wzz401)
new_ltEs10(Just(wzz670), Just(wzz680), app(app(ty_Either, ed), ee)) → new_ltEs4(wzz670, wzz680, ed, ee)
new_esEs9(wzz50, wzz400, app(app(ty_@2, ebg), ebh)) → new_esEs19(wzz50, wzz400, ebg, ebh)
new_esEs34(wzz112, wzz114, app(app(ty_Either, bdb), bdc)) → new_esEs15(wzz112, wzz114, bdb, bdc)
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_lt6(wzz670, wzz680, app(app(app(ty_@3, hg), hh), baa)) → new_lt12(wzz670, wzz680, hg, hh, baa)
new_primCmpInt(Neg(Succ(wzz500)), Pos(wzz400)) → LT
new_ltEs22(wzz113, wzz115, app(app(app(ty_@3, bdh), bea), beb)) → new_ltEs11(wzz113, wzz115, bdh, bea, beb)
new_not(True) → False
new_esEs15(Right(wzz500), Right(wzz4000), dba, app(app(ty_@2, ehg), ehh)) → new_esEs19(wzz500, wzz4000, ehg, ehh)
new_esEs31(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs32(wzz79, wzz82, ty_Ordering) → new_esEs21(wzz79, wzz82)
new_ltEs23(wzz671, wzz681, ty_Float) → new_ltEs12(wzz671, wzz681)
new_lt16(wzz5, wzz40, fcd) → new_esEs26(new_compare16(wzz5, wzz40, fcd))

The set Q consists of the following terms:

new_ltEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs29(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs12(x0, x1)
new_compare31(x0, x1, app(ty_Maybe, x2))
new_primEqNat0(Succ(x0), Zero)
new_esEs21(LT, LT)
new_esEs35(x0, x1, ty_Ordering)
new_compare11(x0, x1, True, x2, x3)
new_esEs5(x0, x1, ty_Float)
new_esEs21(LT, EQ)
new_esEs21(EQ, LT)
new_lt23(x0, x1, ty_Double)
new_esEs18(@0, @0)
new_esEs33(x0, x1, ty_Int)
new_esEs32(x0, x1, ty_Char)
new_esEs29(x0, x1, ty_Ordering)
new_esEs39(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs10(Just(x0), Nothing, x1)
new_esEs8(x0, x1, app(app(ty_@2, x2), x3))
new_esEs33(x0, x1, ty_Double)
new_lt22(x0, x1, ty_Char)
new_esEs30(x0, x1, app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, ty_Int)
new_esEs15(Right(x0), Right(x1), x2, ty_Int)
new_compare10(LT, LT)
new_lt6(x0, x1, ty_Char)
new_esEs39(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs30(x0, x1, ty_Ordering)
new_esEs35(x0, x1, ty_@0)
new_esEs31(x0, x1, app(app(ty_Either, x2), x3))
new_esEs5(x0, x1, app(ty_Maybe, x2))
new_esEs34(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs21(x0, x1, ty_Double)
new_esEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs4(x0, x1, ty_Int)
new_esEs40(x0, x1, ty_Ordering)
new_esEs29(x0, x1, ty_Bool)
new_esEs5(x0, x1, ty_Char)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_ltEs21(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_@0)
new_primEqNat0(Zero, Succ(x0))
new_pePe(False, x0)
new_esEs10(x0, x1, ty_@0)
new_fsEs(x0)
new_esEs10(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, ty_Int)
new_esEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs4(x0, x1, ty_Ordering)
new_ltEs24(x0, x1, app(ty_Ratio, x2))
new_esEs32(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs22(x0, x1, app(ty_[], x2))
new_esEs33(x0, x1, ty_@0)
new_esEs4(x0, x1, ty_Integer)
new_esEs15(Left(x0), Left(x1), ty_Bool, x2)
new_asAs(True, x0)
new_esEs15(Right(x0), Right(x1), x2, ty_Double)
new_esEs40(x0, x1, ty_Bool)
new_ltEs22(x0, x1, ty_Integer)
new_ltEs22(x0, x1, ty_Ordering)
new_compare31(x0, x1, app(ty_[], x2))
new_esEs12(Just(x0), Just(x1), ty_Integer)
new_ltEs5(x0, x1)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare31(x0, x1, ty_Integer)
new_esEs38(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs4(x0, x1, ty_Char)
new_esEs28(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_@0)
new_esEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs8(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs40(x0, x1, app(ty_Ratio, x2))
new_ltEs20(x0, x1, ty_Int)
new_esEs12(Just(x0), Just(x1), ty_@0)
new_compare28(x0, x1, True, x2, x3)
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs8(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, ty_Double)
new_ltEs23(x0, x1, ty_@0)
new_esEs12(Just(x0), Just(x1), ty_Int)
new_lt23(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, app(ty_Ratio, x2))
new_esEs29(x0, x1, app(ty_Ratio, x2))
new_compare13(Just(x0), Just(x1), x2)
new_esEs17(Char(x0), Char(x1))
new_ltEs18(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_@0)
new_esEs31(x0, x1, ty_Int)
new_esEs8(x0, x1, app(ty_[], x2))
new_ltEs10(Just(x0), Just(x1), ty_Ordering)
new_lt23(x0, x1, ty_Int)
new_esEs30(x0, x1, ty_Float)
new_ltEs13(x0, x1, x2)
new_primPlusNat0(Succ(x0), Zero)
new_esEs15(Left(x0), Left(x1), ty_Int, x2)
new_esEs40(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs32(x0, x1, ty_Ordering)
new_compare0(:(x0, x1), [], x2)
new_esEs31(x0, x1, app(ty_Ratio, x2))
new_lt5(x0, x1, app(ty_Maybe, x2))
new_esEs5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt22(x0, x1, ty_Integer)
new_compare10(LT, GT)
new_lt23(x0, x1, ty_Bool)
new_lt17(x0, x1)
new_compare10(GT, LT)
new_primCmpNat0(Zero, Succ(x0))
new_esEs31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs33(x0, x1, ty_Float)
new_esEs24(x0, x1)
new_ltEs18(x0, x1, ty_Float)
new_lt6(x0, x1, app(ty_Maybe, x2))
new_esEs15(Right(x0), Right(x1), x2, ty_Bool)
new_compare26(x0, x1, False, x2, x3)
new_compare17(x0, x1, x2, x3, x4, x5, True, x6, x7, x8, x9)
new_primCompAux0(x0, GT)
new_esEs32(x0, x1, app(ty_Ratio, x2))
new_lt5(x0, x1, app(app(ty_Either, x2), x3))
new_compare31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt22(x0, x1, ty_@0)
new_compare30(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_compare8(Double(x0, x1), Double(x2, x3))
new_esEs34(x0, x1, ty_Integer)
new_esEs38(x0, x1, ty_Bool)
new_lt23(x0, x1, ty_Char)
new_lt6(x0, x1, ty_@0)
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_esEs12(Just(x0), Nothing, x1)
new_lt22(x0, x1, app(app(ty_Either, x2), x3))
new_compare26(x0, x1, True, x2, x3)
new_primCmpNat0(Succ(x0), Succ(x1))
new_esEs32(x0, x1, ty_@0)
new_lt6(x0, x1, app(ty_Ratio, x2))
new_esEs28(x0, x1, ty_Integer)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_ltEs19(x0, x1, app(ty_[], x2))
new_ltEs22(x0, x1, app(ty_Ratio, x2))
new_esEs7(x0, x1, ty_Bool)
new_esEs30(x0, x1, ty_Double)
new_compare10(EQ, EQ)
new_esEs34(x0, x1, ty_Bool)
new_esEs21(EQ, GT)
new_esEs21(GT, EQ)
new_ltEs21(x0, x1, ty_Bool)
new_esEs39(x0, x1, app(app(ty_Either, x2), x3))
new_esEs12(Just(x0), Just(x1), ty_Char)
new_esEs15(Left(x0), Left(x1), ty_@0, x2)
new_compare11(x0, x1, False, x2, x3)
new_esEs6(x0, x1, ty_Int)
new_ltEs10(Just(x0), Just(x1), ty_@0)
new_esEs27(x0, x1, ty_Double)
new_esEs9(x0, x1, ty_Integer)
new_primEqNat0(Succ(x0), Succ(x1))
new_ltEs9(EQ, EQ)
new_ltEs17(False, False)
new_esEs10(x0, x1, app(ty_[], x2))
new_compare15(Left(x0), Right(x1), x2, x3)
new_compare15(Right(x0), Left(x1), x2, x3)
new_esEs14(True, True)
new_esEs4(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs4(Left(x0), Left(x1), ty_Bool, x2)
new_esEs33(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare18(x0, x1, True, x2, x3)
new_esEs8(x0, x1, ty_Ordering)
new_esEs34(x0, x1, ty_Ordering)
new_esEs27(x0, x1, ty_Bool)
new_esEs33(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, ty_@0)
new_esEs9(x0, x1, ty_Char)
new_primEqNat0(Zero, Zero)
new_esEs10(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare31(x0, x1, ty_Char)
new_esEs12(Just(x0), Just(x1), ty_Double)
new_esEs26(EQ)
new_esEs15(Right(x0), Right(x1), x2, ty_Float)
new_compare31(x0, x1, ty_Double)
new_esEs28(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs32(x0, x1, ty_Bool)
new_compare112(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_esEs9(x0, x1, ty_Int)
new_esEs27(x0, x1, ty_Char)
new_esEs15(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs24(x0, x1, ty_Ordering)
new_esEs7(x0, x1, app(app(ty_Either, x2), x3))
new_esEs8(x0, x1, ty_Bool)
new_esEs30(x0, x1, ty_Integer)
new_esEs12(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs10(x0, x1, ty_Int)
new_ltEs4(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs20(x0, x1, ty_Ordering)
new_lt5(x0, x1, ty_Bool)
new_esEs39(x0, x1, app(ty_Maybe, x2))
new_ltEs4(Left(x0), Left(x1), ty_Float, x2)
new_primMulNat0(Zero, Succ(x0))
new_esEs35(x0, x1, ty_Integer)
new_esEs9(x0, x1, ty_Float)
new_lt20(x0, x1, ty_Integer)
new_esEs12(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, x1, ty_Int)
new_lt22(x0, x1, ty_Bool)
new_compare27(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_lt11(x0, x1, x2)
new_esEs4(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_ltEs10(Just(x0), Just(x1), app(ty_[], x2))
new_ltEs6(x0, x1)
new_lt22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs10(x0, x1, ty_Bool)
new_esEs35(x0, x1, app(ty_Maybe, x2))
new_primMulNat0(Zero, Zero)
new_compare13(Just(x0), Nothing, x1)
new_esEs11(x0, x1, ty_Bool)
new_esEs8(x0, x1, ty_@0)
new_esEs12(Just(x0), Just(x1), ty_Ordering)
new_ltEs10(Just(x0), Just(x1), ty_Double)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_ltEs20(x0, x1, ty_Float)
new_lt5(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Int)
new_esEs35(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_esEs34(x0, x1, app(ty_Maybe, x2))
new_esEs26(GT)
new_ltEs18(x0, x1, ty_Double)
new_esEs9(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs10(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_lt23(x0, x1, ty_Ordering)
new_compare16(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_esEs33(x0, x1, app(ty_[], x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_esEs38(x0, x1, app(ty_[], x2))
new_primMulInt(Pos(x0), Pos(x1))
new_esEs6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs34(x0, x1, ty_Char)
new_esEs39(x0, x1, ty_Float)
new_esEs30(x0, x1, app(ty_Maybe, x2))
new_esEs38(x0, x1, app(app(ty_Either, x2), x3))
new_lt23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs17(True, True)
new_lt5(x0, x1, ty_@0)
new_ltEs23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs40(x0, x1, ty_@0)
new_esEs37(x0, x1, ty_Integer)
new_esEs30(x0, x1, ty_Bool)
new_esEs28(x0, x1, app(ty_Ratio, x2))
new_ltEs24(x0, x1, ty_@0)
new_esEs6(x0, x1, ty_Integer)
new_ltEs18(x0, x1, ty_Char)
new_esEs34(x0, x1, ty_Int)
new_esEs9(x0, x1, app(ty_[], x2))
new_lt23(x0, x1, ty_Integer)
new_esEs10(x0, x1, ty_Char)
new_esEs34(x0, x1, app(app(ty_Either, x2), x3))
new_lt20(x0, x1, ty_Ordering)
new_esEs7(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_Ordering)
new_compare31(x0, x1, app(ty_Ratio, x2))
new_esEs29(x0, x1, app(ty_[], x2))
new_esEs6(x0, x1, ty_@0)
new_lt22(x0, x1, ty_Ordering)
new_esEs7(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs10(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_ltEs22(x0, x1, ty_@0)
new_esEs28(x0, x1, ty_Char)
new_esEs34(x0, x1, ty_Float)
new_ltEs4(Left(x0), Left(x1), ty_Char, x2)
new_esEs29(x0, x1, app(app(ty_@2, x2), x3))
new_esEs28(x0, x1, ty_Bool)
new_esEs39(x0, x1, ty_Char)
new_esEs33(x0, x1, app(ty_Maybe, x2))
new_lt22(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, ty_Integer)
new_compare111(x0, x1, x2, x3, False, x4, x5)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_ltEs14(x0, x1)
new_esEs5(x0, x1, ty_Int)
new_lt23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs29(x0, x1, app(ty_Maybe, x2))
new_ltEs9(GT, EQ)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_ltEs9(EQ, GT)
new_sr(x0, x1)
new_ltEs20(x0, x1, ty_Integer)
new_ltEs24(x0, x1, ty_Double)
new_esEs29(x0, x1, ty_@0)
new_ltEs4(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs27(x0, x1, ty_Ordering)
new_esEs33(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs10(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare5(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt21(x0, x1, ty_Bool)
new_ltEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(x0, x1, ty_Integer)
new_esEs30(x0, x1, ty_Char)
new_compare10(GT, EQ)
new_compare10(EQ, GT)
new_compare13(Nothing, Just(x0), x1)
new_primMulInt(Neg(x0), Neg(x1))
new_compare9(x0, x1)
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs39(x0, x1, app(ty_Ratio, x2))
new_esEs38(x0, x1, app(ty_Ratio, x2))
new_esEs32(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, ty_@0)
new_esEs28(x0, x1, app(ty_[], x2))
new_ltEs4(Right(x0), Right(x1), x2, ty_Int)
new_ltEs22(x0, x1, ty_Char)
new_lt14(x0, x1, x2)
new_esEs6(x0, x1, ty_Float)
new_esEs6(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_Ordering)
new_esEs31(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs24(x0, x1, ty_Integer)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primPlusNat0(Zero, Zero)
new_esEs27(x0, x1, app(ty_[], x2))
new_esEs39(x0, x1, ty_Int)
new_esEs4(x0, x1, ty_Bool)
new_pePe(True, x0)
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_compare31(x0, x1, ty_Bool)
new_esEs38(x0, x1, ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs31(x0, x1, ty_Ordering)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare29(False, False)
new_esEs39(x0, x1, app(ty_[], x2))
new_esEs27(x0, x1, ty_Float)
new_esEs4(x0, x1, ty_@0)
new_ltEs23(x0, x1, ty_Char)
new_esEs40(x0, x1, app(ty_[], x2))
new_esEs35(x0, x1, app(ty_[], x2))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_lt8(x0, x1)
new_esEs9(x0, x1, ty_@0)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs8(x0, x1)
new_esEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_ltEs4(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs7(x0, x1, app(ty_[], x2))
new_esEs29(x0, x1, app(app(ty_Either, x2), x3))
new_esEs10(x0, x1, app(ty_Maybe, x2))
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(Nothing, Nothing, x0)
new_lt23(x0, x1, app(ty_Ratio, x2))
new_lt15(x0, x1)
new_lt23(x0, x1, ty_@0)
new_ltEs21(x0, x1, app(ty_Maybe, x2))
new_esEs21(LT, GT)
new_esEs21(GT, LT)
new_ltEs4(Right(x0), Right(x1), x2, ty_Double)
new_esEs35(x0, x1, app(app(ty_Either, x2), x3))
new_esEs38(x0, x1, ty_Int)
new_ltEs21(x0, x1, ty_Integer)
new_esEs34(x0, x1, ty_@0)
new_esEs9(x0, x1, ty_Ordering)
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs38(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt5(x0, x1, ty_Float)
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_compare19(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs7(x0, x1, ty_Float)
new_ltEs4(Right(x0), Right(x1), x2, ty_Float)
new_compare31(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_esEs25(:(x0, x1), :(x2, x3), x4)
new_lt21(x0, x1, app(ty_[], x2))
new_ltEs4(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_compare112(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_lt22(x0, x1, ty_Int)
new_compare25(x0, x1, x2, x3, True, x4, x5)
new_ltEs9(LT, EQ)
new_ltEs9(EQ, LT)
new_lt19(x0, x1)
new_esEs20(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs33(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(x0, x1, ty_Float)
new_compare29(True, True)
new_compare19(x0, x1, x2, x3, False, x4, x5, x6)
new_esEs39(x0, x1, ty_Double)
new_lt4(x0, x1, x2, x3)
new_compare12(Char(x0), Char(x1))
new_esEs9(x0, x1, app(ty_Ratio, x2))
new_compare13(Nothing, Nothing, x0)
new_ltEs20(x0, x1, ty_Double)
new_ltEs20(x0, x1, ty_Bool)
new_lt6(x0, x1, ty_Bool)
new_esEs39(x0, x1, ty_Bool)
new_primCompAux0(x0, EQ)
new_esEs29(x0, x1, ty_Char)
new_ltEs10(Just(x0), Just(x1), ty_Int)
new_esEs7(x0, x1, app(ty_Maybe, x2))
new_esEs12(Just(x0), Just(x1), app(ty_[], x2))
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqInt(Neg(Zero), Pos(Zero))
new_esEs33(x0, x1, ty_Integer)
new_compare31(x0, x1, ty_@0)
new_ltEs22(x0, x1, ty_Float)
new_esEs7(x0, x1, ty_Int)
new_ltEs4(Right(x0), Right(x1), x2, ty_Bool)
new_esEs35(x0, x1, app(app(ty_@2, x2), x3))
new_esEs8(x0, x1, ty_Float)
new_ltEs4(Left(x0), Left(x1), ty_Integer, x2)
new_esEs38(x0, x1, ty_Double)
new_compare0([], [], x0)
new_ltEs24(x0, x1, app(ty_[], x2))
new_esEs15(Left(x0), Left(x1), ty_Double, x2)
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs4(Right(x0), Right(x1), x2, ty_@0)
new_esEs40(x0, x1, app(ty_Maybe, x2))
new_esEs12(Just(x0), Just(x1), ty_Float)
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_esEs30(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare27(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_lt7(x0, x1)
new_ltEs22(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs10(Nothing, Nothing, x0)
new_esEs33(x0, x1, ty_Bool)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs6(x0, x1, app(ty_Ratio, x2))
new_esEs22(:%(x0, x1), :%(x2, x3), x4)
new_lt23(x0, x1, ty_Float)
new_esEs36(x0, x1, ty_Integer)
new_ltEs4(Right(x0), Right(x1), x2, ty_Ordering)
new_lt5(x0, x1, ty_Char)
new_esEs34(x0, x1, app(ty_[], x2))
new_esEs4(x0, x1, app(ty_[], x2))
new_lt9(x0, x1)
new_compare7(Integer(x0), Integer(x1))
new_esEs8(x0, x1, ty_Double)
new_primEqInt(Neg(Zero), Neg(Zero))
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_compare14(@0, @0)
new_ltEs4(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs5(x0, x1, ty_@0)
new_esEs9(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Int)
new_ltEs21(x0, x1, ty_Char)
new_esEs35(x0, x1, ty_Double)
new_esEs7(x0, x1, ty_Integer)
new_esEs27(x0, x1, ty_Int)
new_esEs28(x0, x1, ty_Double)
new_compare10(GT, GT)
new_esEs5(x0, x1, app(app(ty_Either, x2), x3))
new_compare25(x0, x1, x2, x3, False, x4, x5)
new_esEs14(True, False)
new_esEs14(False, True)
new_sr0(Integer(x0), Integer(x1))
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_compare31(x0, x1, ty_Ordering)
new_ltEs22(x0, x1, ty_Bool)
new_esEs35(x0, x1, ty_Float)
new_esEs31(x0, x1, ty_Double)
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_esEs12(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_lt21(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Bool)
new_ltEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs28(x0, x1, app(ty_Maybe, x2))
new_esEs9(x0, x1, ty_Bool)
new_lt6(x0, x1, ty_Ordering)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_esEs40(x0, x1, app(app(ty_Either, x2), x3))
new_esEs38(x0, x1, ty_Float)
new_compare28(x0, x1, False, x2, x3)
new_ltEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs21(x0, x1, app(ty_[], x2))
new_esEs32(x0, x1, app(ty_Maybe, x2))
new_esEs10(x0, x1, ty_Float)
new_compare110(x0, x1, True, x2)
new_esEs31(x0, x1, ty_@0)
new_esEs32(x0, x1, app(ty_[], x2))
new_esEs10(x0, x1, app(app(ty_@2, x2), x3))
new_lt5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, ty_Char)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs25(:(x0, x1), [], x2)
new_ltEs9(LT, LT)
new_esEs38(x0, x1, ty_Ordering)
new_asAs(False, x0)
new_ltEs4(Left(x0), Left(x1), ty_@0, x2)
new_esEs5(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs4(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs23(x0, x1, app(ty_Ratio, x2))
new_esEs27(x0, x1, ty_@0)
new_compare15(Left(x0), Left(x1), x2, x3)
new_ltEs23(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, ty_Bool)
new_esEs15(Right(x0), Right(x1), x2, ty_Integer)
new_esEs31(x0, x1, ty_Integer)
new_esEs7(x0, x1, ty_Ordering)
new_esEs30(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(x0, x1, ty_Ordering)
new_ltEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs25([], [], x0)
new_esEs13(Double(x0, x1), Double(x2, x3))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_ltEs19(x0, x1, ty_Float)
new_esEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs23(x0, x1, ty_Float)
new_esEs26(LT)
new_esEs28(x0, x1, app(app(ty_Either, x2), x3))
new_compare31(x0, x1, ty_Float)
new_esEs5(x0, x1, ty_Ordering)
new_esEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_compare31(x0, x1, ty_Int)
new_ltEs4(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_lt20(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Bool)
new_ltEs4(Right(x0), Right(x1), x2, ty_Integer)
new_primCmpNat0(Zero, Zero)
new_esEs23(Integer(x0), Integer(x1))
new_esEs39(x0, x1, ty_Ordering)
new_ltEs23(x0, x1, app(ty_Maybe, x2))
new_ltEs24(x0, x1, ty_Int)
new_esEs7(x0, x1, ty_@0)
new_lt6(x0, x1, ty_Float)
new_esEs30(x0, x1, ty_Int)
new_esEs28(x0, x1, ty_Float)
new_esEs40(x0, x1, ty_Char)
new_esEs9(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs40(x0, x1, app(app(ty_@2, x2), x3))
new_compare29(True, False)
new_compare29(False, True)
new_lt5(x0, x1, app(app(ty_@2, x2), x3))
new_esEs10(x0, x1, ty_Double)
new_ltEs24(x0, x1, ty_Bool)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs4(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs40(x0, x1, ty_Integer)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_esEs5(x0, x1, app(ty_[], x2))
new_ltEs7(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs4(Left(x0), Left(x1), ty_Int, x2)
new_ltEs20(x0, x1, ty_@0)
new_esEs15(Right(x0), Right(x1), x2, ty_Char)
new_lt21(x0, x1, ty_Char)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_esEs37(x0, x1, ty_Int)
new_esEs5(x0, x1, ty_Double)
new_esEs6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(x0, x1, app(ty_Maybe, x2))
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_ltEs10(Just(x0), Just(x1), ty_Char)
new_lt21(x0, x1, ty_Double)
new_ltEs15(x0, x1, x2)
new_compare10(EQ, LT)
new_compare10(LT, EQ)
new_ltEs10(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs39(x0, x1, ty_@0)
new_ltEs21(x0, x1, ty_Int)
new_esEs9(x0, x1, ty_Double)
new_esEs31(x0, x1, ty_Bool)
new_esEs5(x0, x1, ty_Integer)
new_ltEs4(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs19(x0, x1, ty_Ordering)
new_ltEs10(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs33(x0, x1, ty_Ordering)
new_compare31(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Bool)
new_esEs4(x0, x1, app(ty_Ratio, x2))
new_ltEs21(x0, x1, ty_Ordering)
new_esEs19(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs12(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs16(x0, x1)
new_esEs8(x0, x1, ty_Char)
new_esEs29(x0, x1, ty_Float)
new_primCompAux1(x0, x1, x2, x3)
new_esEs33(x0, x1, ty_Char)
new_compare110(x0, x1, False, x2)
new_ltEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs30(x0, x1, ty_@0)
new_lt5(x0, x1, ty_Int)
new_ltEs9(LT, GT)
new_ltEs9(GT, LT)
new_esEs15(Right(x0), Left(x1), x2, x3)
new_esEs15(Left(x0), Right(x1), x2, x3)
new_ltEs22(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, app(ty_[], x2))
new_lt12(x0, x1, x2, x3, x4)
new_ltEs21(x0, x1, ty_Float)
new_esEs4(x0, x1, app(app(ty_Either, x2), x3))
new_esEs28(x0, x1, ty_Int)
new_esEs38(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs4(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs35(x0, x1, ty_Bool)
new_esEs15(Right(x0), Right(x1), x2, ty_@0)
new_esEs5(x0, x1, app(ty_Ratio, x2))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_esEs32(x0, x1, app(app(ty_Either, x2), x3))
new_not(True)
new_ltEs10(Just(x0), Just(x1), ty_Float)
new_esEs39(x0, x1, ty_Integer)
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, ty_Char)
new_ltEs10(Just(x0), Just(x1), ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_esEs11(x0, x1, ty_Integer)
new_esEs12(Nothing, Just(x0), x1)
new_compare17(x0, x1, x2, x3, x4, x5, False, x6, x7, x8, x9)
new_esEs30(x0, x1, app(ty_Ratio, x2))
new_esEs9(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs6(x0, x1, app(ty_[], x2))
new_lt5(x0, x1, app(ty_[], x2))
new_esEs31(x0, x1, ty_Char)
new_esEs11(x0, x1, ty_Char)
new_esEs25([], :(x0, x1), x2)
new_esEs32(x0, x1, app(app(ty_@2, x2), x3))
new_lt5(x0, x1, ty_Double)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_ltEs18(x0, x1, ty_Int)
new_not(False)
new_ltEs24(x0, x1, app(ty_Maybe, x2))
new_primMulNat0(Succ(x0), Zero)
new_ltEs22(x0, x1, ty_Double)
new_lt6(x0, x1, app(ty_[], x2))
new_lt23(x0, x1, app(ty_Maybe, x2))
new_esEs40(x0, x1, ty_Double)
new_esEs27(x0, x1, ty_Integer)
new_esEs4(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, ty_Integer)
new_ltEs17(False, True)
new_ltEs17(True, False)
new_lt20(x0, x1, ty_Double)
new_esEs15(Left(x0), Left(x1), ty_Float, x2)
new_ltEs21(x0, x1, app(ty_Ratio, x2))
new_lt6(x0, x1, ty_Double)
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare6(Float(x0, x1), Float(x2, x3))
new_esEs6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs31(x0, x1, app(ty_Maybe, x2))
new_esEs10(x0, x1, ty_Ordering)
new_compare210(x0, x1, False, x2)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare210(x0, x1, True, x2)
new_lt21(x0, x1, ty_Float)
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs4(Right(x0), Right(x1), x2, app(ty_[], x3))
new_lt22(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Int)
new_lt6(x0, x1, ty_Int)
new_lt22(x0, x1, app(ty_Maybe, x2))
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_esEs38(x0, x1, ty_@0)
new_lt23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs12(Just(x0), Just(x1), app(ty_Maybe, x2))
new_lt5(x0, x1, ty_Integer)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_@0)
new_esEs40(x0, x1, ty_Float)
new_lt6(x0, x1, ty_Integer)
new_esEs35(x0, x1, app(ty_Ratio, x2))
new_primCmpNat0(Succ(x0), Zero)
new_ltEs4(Right(x0), Left(x1), x2, x3)
new_ltEs4(Left(x0), Right(x1), x2, x3)
new_ltEs23(x0, x1, ty_Ordering)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs8(x0, x1, ty_Int)
new_esEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs21(EQ, EQ)
new_lt22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, x1, ty_Integer)
new_esEs7(x0, x1, app(ty_Ratio, x2))
new_esEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_ltEs9(GT, GT)
new_esEs4(x0, x1, ty_Double)
new_lt13(x0, x1)
new_ltEs4(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs6(x0, x1, ty_Double)
new_ltEs10(Just(x0), Just(x1), ty_Integer)
new_esEs11(x0, x1, ty_Float)
new_compare0([], :(x0, x1), x2)
new_esEs35(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs32(x0, x1, ty_Integer)
new_lt21(x0, x1, ty_Ordering)
new_compare111(x0, x1, x2, x3, True, x4, x5)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_ltEs4(Right(x0), Right(x1), x2, ty_Char)
new_esEs40(x0, x1, ty_Int)
new_esEs34(x0, x1, app(ty_Ratio, x2))
new_ltEs24(x0, x1, ty_Float)
new_primPlusNat0(Zero, Succ(x0))
new_compare18(x0, x1, False, x2, x3)
new_esEs14(False, False)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs30(x0, x1, app(ty_[], x2))
new_esEs38(x0, x1, ty_Char)
new_ltEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare15(Right(x0), Right(x1), x2, x3)
new_esEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs4(Left(x0), Left(x1), ty_Double, x2)
new_ltEs23(x0, x1, ty_Double)
new_esEs6(x0, x1, ty_Bool)
new_lt22(x0, x1, ty_Double)
new_esEs34(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs6(x0, x1, ty_Char)
new_esEs34(x0, x1, ty_Double)
new_lt5(x0, x1, ty_Ordering)
new_esEs21(GT, GT)
new_lt16(x0, x1, x2)
new_esEs7(x0, x1, ty_Char)
new_primCompAux0(x0, LT)
new_esEs36(x0, x1, ty_Int)
new_esEs32(x0, x1, ty_Int)
new_esEs10(x0, x1, app(app(ty_Either, x2), x3))
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs8(x0, x1, app(ty_Ratio, x2))
new_esEs35(x0, x1, ty_Char)
new_lt18(x0, x1, x2, x3)
new_lt10(x0, x1)
new_esEs31(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Integer)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_compare16(:%(x0, x1), :%(x2, x3), ty_Integer)
new_ltEs22(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_ltEs11(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs10(x0, x1, ty_Integer)
new_esEs29(x0, x1, ty_Double)
new_lt22(x0, x1, app(ty_Ratio, x2))
new_esEs12(Just(x0), Just(x1), ty_Bool)
new_esEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs24(x0, x1, ty_Char)
new_esEs15(Left(x0), Left(x1), ty_Char, x2)
new_esEs5(x0, x1, ty_Bool)
new_esEs7(x0, x1, ty_Double)
new_esEs31(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs10(Nothing, Just(x0), x1)
new_esEs32(x0, x1, ty_Float)
new_ltEs19(x0, x1, ty_Double)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof

Q DP problem:
The TRS P consists of the following rules:

new_addToFM_C2(wzz17, wzz18, wzz19, wzz20, wzz21, wzz22, wzz23, wzz24, False, h, ba) → new_addToFM_C1(wzz17, wzz18, wzz19, wzz20, wzz21, wzz22, wzz23, wzz24, new_gt(wzz23, wzz18, h), h, ba)
new_addToFM_C(wzz3, Branch(wzz40, wzz41, wzz42, wzz43, wzz44), wzz5, wzz6, bd, be) → new_addToFM_C2(wzz3, wzz40, wzz41, wzz42, wzz43, wzz44, wzz5, wzz6, new_lt24(wzz5, wzz40, bd), bd, be)
new_addToFM_C2(wzz17, wzz18, wzz19, wzz20, wzz21, wzz22, wzz23, wzz24, True, h, ba) → new_addToFM_C(wzz17, wzz21, wzz23, wzz24, h, ba)
new_addToFM_C1(wzz36, wzz37, wzz38, wzz39, wzz40, wzz41, wzz42, wzz43, True, bb, bc) → new_addToFM_C(wzz36, wzz41, wzz42, wzz43, bb, bc)

The TRS R consists of the following rules:

new_esEs15(Left(wzz500), Left(wzz4000), app(ty_Ratio, eda), hf) → new_esEs22(wzz500, wzz4000, eda)
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_Ordering) → new_ltEs9(wzz670, wzz680)
new_compare19(wzz169, wzz170, wzz171, wzz172, True, wzz174, fdc, fdd) → new_compare111(wzz169, wzz170, wzz171, wzz172, True, fdc, fdd)
new_esEs4(wzz51, wzz401, ty_Bool) → new_esEs14(wzz51, wzz401)
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs34(wzz112, wzz114, ty_Float) → new_esEs16(wzz112, wzz114)
new_lt7(wzz5, wzz40) → new_esEs26(new_compare12(wzz5, wzz40))
new_esEs13(Double(wzz500, wzz501), Double(wzz4000, wzz4001)) → new_esEs24(new_sr(wzz500, wzz4000), new_sr(wzz501, wzz4001))
new_esEs15(Right(wzz500), Left(wzz4000), he, hf) → False
new_esEs15(Left(wzz500), Right(wzz4000), he, hf) → False
new_esEs17(Char(wzz500), Char(wzz4000)) → new_primEqNat0(wzz500, wzz4000)
new_ltEs24(wzz67, wzz68, app(app(ty_@2, dhd), dhe)) → new_ltEs7(wzz67, wzz68, dhd, dhe)
new_esEs35(wzz670, wzz680, app(ty_Ratio, ebg)) → new_esEs22(wzz670, wzz680, ebg)
new_lt23(wzz670, wzz680, ty_Double) → new_lt15(wzz670, wzz680)
new_esEs35(wzz670, wzz680, ty_Integer) → new_esEs23(wzz670, wzz680)
new_lt20(wzz78, wzz81, app(ty_Ratio, ced)) → new_lt16(wzz78, wzz81, ced)
new_lt22(wzz112, wzz114, ty_@0) → new_lt17(wzz112, wzz114)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Integer, hf) → new_esEs23(wzz500, wzz4000)
new_lt5(wzz671, wzz681, app(ty_[], bda)) → new_lt14(wzz671, wzz681, bda)
new_esEs11(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Integer) → new_ltEs8(wzz670, wzz680)
new_lt13(wzz5, wzz40) → new_esEs26(new_compare6(wzz5, wzz40))
new_lt6(wzz670, wzz680, app(ty_[], bec)) → new_lt14(wzz670, wzz680, bec)
new_lt21(wzz79, wzz82, ty_Ordering) → new_lt10(wzz79, wzz82)
new_ltEs20(wzz80, wzz83, app(ty_Ratio, cff)) → new_ltEs15(wzz80, wzz83, cff)
new_lt21(wzz79, wzz82, ty_@0) → new_lt17(wzz79, wzz82)
new_esEs40(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_@0) → new_esEs18(wzz500, wzz4000)
new_esEs31(wzz500, wzz4000, app(ty_[], ccd)) → new_esEs25(wzz500, wzz4000, ccd)
new_esEs11(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_ltEs9(GT, LT) → False
new_compare10(GT, LT) → GT
new_ltEs18(wzz672, wzz682, app(ty_[], bbg)) → new_ltEs13(wzz672, wzz682, bbg)
new_lt23(wzz670, wzz680, ty_Ordering) → new_lt10(wzz670, wzz680)
new_esEs35(wzz670, wzz680, app(app(ty_@2, eah), eba)) → new_esEs19(wzz670, wzz680, eah, eba)
new_compare28(wzz101, wzz102, False, chc, chd) → new_compare18(wzz101, wzz102, new_ltEs21(wzz101, wzz102, chd), chc, chd)
new_esEs34(wzz112, wzz114, ty_Double) → new_esEs13(wzz112, wzz114)
new_ltEs23(wzz671, wzz681, ty_Integer) → new_ltEs8(wzz671, wzz681)
new_esEs39(wzz501, wzz4001, app(app(ty_Either, ffa), ffb)) → new_esEs15(wzz501, wzz4001, ffa, ffb)
new_esEs7(wzz52, wzz402, app(app(app(ty_@3, ege), egf), egg)) → new_esEs20(wzz52, wzz402, ege, egf, egg)
new_esEs31(wzz500, wzz4000, app(app(ty_@2, cbe), cbf)) → new_esEs19(wzz500, wzz4000, cbe, cbf)
new_ltEs20(wzz80, wzz83, app(app(app(ty_@3, cfb), cfc), cfd)) → new_ltEs11(wzz80, wzz83, cfb, cfc, cfd)
new_esEs6(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_lt21(wzz79, wzz82, app(ty_Maybe, cgc)) → new_lt11(wzz79, wzz82, cgc)
new_lt20(wzz78, wzz81, ty_Integer) → new_lt9(wzz78, wzz81)
new_esEs31(wzz500, wzz4000, ty_Char) → new_esEs17(wzz500, wzz4000)
new_esEs28(wzz670, wzz680, ty_Integer) → new_esEs23(wzz670, wzz680)
new_gt(wzz23, wzz18, ty_Char) → new_esEs41(new_compare12(wzz23, wzz18))
new_esEs12(Just(wzz500), Just(wzz4000), app(app(ty_Either, bg), bh)) → new_esEs15(wzz500, wzz4000, bg, bh)
new_esEs31(wzz500, wzz4000, app(ty_Maybe, ccc)) → new_esEs12(wzz500, wzz4000, ccc)
new_gt(wzz23, wzz18, app(ty_[], efe)) → new_esEs41(new_compare0(wzz23, wzz18, efe))
new_esEs5(wzz50, wzz400, app(app(app(ty_@3, baa), bab), bac)) → new_esEs20(wzz50, wzz400, baa, bab, bac)
new_esEs7(wzz52, wzz402, ty_Bool) → new_esEs14(wzz52, wzz402)
new_compare31(wzz50, wzz400, app(app(app(ty_@3, gae), gaf), gag)) → new_compare30(wzz50, wzz400, gae, gaf, gag)
new_ltEs9(EQ, GT) → True
new_esEs34(wzz112, wzz114, ty_Integer) → new_esEs23(wzz112, wzz114)
new_esEs8(wzz51, wzz401, ty_Double) → new_esEs13(wzz51, wzz401)
new_lt21(wzz79, wzz82, ty_Char) → new_lt7(wzz79, wzz82)
new_esEs30(wzz500, wzz4000, ty_Double) → new_esEs13(wzz500, wzz4000)
new_ltEs23(wzz671, wzz681, app(ty_[], ead)) → new_ltEs13(wzz671, wzz681, ead)
new_esEs21(GT, GT) → True
new_ltEs4(Left(wzz670), Left(wzz680), ty_Double, db) → new_ltEs14(wzz670, wzz680)
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_Double) → new_ltEs14(wzz670, wzz680)
new_lt22(wzz112, wzz114, ty_Bool) → new_lt19(wzz112, wzz114)
new_esEs7(wzz52, wzz402, app(ty_[], ehb)) → new_esEs25(wzz52, wzz402, ehb)
new_ltEs19(wzz94, wzz95, app(app(ty_Either, bga), bgb)) → new_ltEs4(wzz94, wzz95, bga, bgb)
new_pePe(False, wzz202) → wzz202
new_lt6(wzz670, wzz680, app(ty_Ratio, bed)) → new_lt16(wzz670, wzz680, bed)
new_esEs9(wzz50, wzz400, app(app(ty_Either, fae), faf)) → new_esEs15(wzz50, wzz400, fae, faf)
new_ltEs23(wzz671, wzz681, ty_Ordering) → new_ltEs9(wzz671, wzz681)
new_compare25(wzz112, wzz113, wzz114, wzz115, True, dcb, dcc) → EQ
new_esEs35(wzz670, wzz680, ty_Bool) → new_esEs14(wzz670, wzz680)
new_ltEs23(wzz671, wzz681, ty_Bool) → new_ltEs17(wzz671, wzz681)
new_ltEs23(wzz671, wzz681, app(ty_Maybe, dhh)) → new_ltEs10(wzz671, wzz681, dhh)
new_ltEs10(Just(wzz670), Just(wzz680), app(ty_Ratio, dbg)) → new_ltEs15(wzz670, wzz680, dbg)
new_esEs8(wzz51, wzz401, ty_Float) → new_esEs16(wzz51, wzz401)
new_esEs10(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_compare31(wzz50, wzz400, ty_Bool) → new_compare29(wzz50, wzz400)
new_gt(wzz23, wzz18, ty_Integer) → new_esEs41(new_compare7(wzz23, wzz18))
new_compare31(wzz50, wzz400, ty_Ordering) → new_compare10(wzz50, wzz400)
new_esEs38(wzz502, wzz4002, ty_Char) → new_esEs17(wzz502, wzz4002)
new_esEs10(wzz50, wzz400, app(ty_Maybe, dfh)) → new_esEs12(wzz50, wzz400, dfh)
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_@0) → new_ltEs16(wzz670, wzz680)
new_ltEs20(wzz80, wzz83, app(app(ty_Either, cfg), cfh)) → new_ltEs4(wzz80, wzz83, cfg, cfh)
new_esEs34(wzz112, wzz114, app(ty_Maybe, dcf)) → new_esEs12(wzz112, wzz114, dcf)
new_esEs26(EQ) → False
new_esEs10(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_esEs15(Right(wzz500), Right(wzz4000), he, app(ty_Ratio, eec)) → new_esEs22(wzz500, wzz4000, eec)
new_esEs35(wzz670, wzz680, app(ty_[], ebf)) → new_esEs25(wzz670, wzz680, ebf)
new_esEs15(Left(wzz500), Left(wzz4000), app(ty_[], edc), hf) → new_esEs25(wzz500, wzz4000, edc)
new_ltEs20(wzz80, wzz83, app(ty_[], cfe)) → new_ltEs13(wzz80, wzz83, cfe)
new_ltEs9(EQ, EQ) → True
new_ltEs4(Right(wzz670), Right(wzz680), ee, app(app(ty_Either, fg), fh)) → new_ltEs4(wzz670, wzz680, fg, fh)
new_esEs31(wzz500, wzz4000, ty_Double) → new_esEs13(wzz500, wzz4000)
new_esEs6(wzz50, wzz400, app(app(ty_@2, fcc), fcd)) → new_esEs19(wzz50, wzz400, fcc, fcd)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Char, db) → new_ltEs5(wzz670, wzz680)
new_gt(wzz23, wzz18, app(app(app(ty_@3, efb), efc), efd)) → new_esEs41(new_compare30(wzz23, wzz18, efb, efc, efd))
new_compare17(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, False, wzz191, fhe, fhf, fhg) → new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, wzz191, fhe, fhf, fhg)
new_esEs36(wzz501, wzz4001, ty_Integer) → new_esEs23(wzz501, wzz4001)
new_ltEs19(wzz94, wzz95, app(ty_Ratio, bfh)) → new_ltEs15(wzz94, wzz95, bfh)
new_ltEs20(wzz80, wzz83, app(app(ty_@2, ceg), ceh)) → new_ltEs7(wzz80, wzz83, ceg, ceh)
new_ltEs23(wzz671, wzz681, ty_@0) → new_ltEs16(wzz671, wzz681)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Double) → new_ltEs14(wzz670, wzz680)
new_esEs12(Just(wzz500), Just(wzz4000), app(ty_[], da)) → new_esEs25(wzz500, wzz4000, da)
new_ltEs22(wzz113, wzz115, ty_Bool) → new_ltEs17(wzz113, wzz115)
new_gt(wzz23, wzz18, app(app(ty_Either, efg), efh)) → new_esEs41(new_compare15(wzz23, wzz18, efg, efh))
new_esEs32(wzz79, wzz82, app(app(ty_Either, cha), chb)) → new_esEs15(wzz79, wzz82, cha, chb)
new_ltEs4(Left(wzz670), Left(wzz680), ty_@0, db) → new_ltEs16(wzz670, wzz680)
new_esEs12(Just(wzz500), Nothing, bf) → False
new_esEs12(Nothing, Just(wzz4000), bf) → False
new_esEs31(wzz500, wzz4000, app(app(ty_Either, cbc), cbd)) → new_esEs15(wzz500, wzz4000, cbc, cbd)
new_pePe(True, wzz202) → True
new_compare0([], [], cah) → EQ
new_esEs27(wzz671, wzz681, ty_@0) → new_esEs18(wzz671, wzz681)
new_primEqNat0(Zero, Zero) → True
new_esEs6(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_lt23(wzz670, wzz680, app(ty_Ratio, ebg)) → new_lt16(wzz670, wzz680, ebg)
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_Float) → new_esEs16(wzz500, wzz4000)
new_esEs10(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_esEs12(Nothing, Nothing, bf) → True
new_esEs32(wzz79, wzz82, app(app(app(ty_@3, cgd), cge), cgf)) → new_esEs20(wzz79, wzz82, cgd, cge, cgf)
new_ltEs24(wzz67, wzz68, ty_Char) → new_ltEs5(wzz67, wzz68)
new_esEs8(wzz51, wzz401, app(ty_Maybe, fac)) → new_esEs12(wzz51, wzz401, fac)
new_esEs11(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_esEs12(Just(wzz500), Just(wzz4000), app(app(app(ty_@3, cc), cd), ce)) → new_esEs20(wzz500, wzz4000, cc, cd, ce)
new_esEs35(wzz670, wzz680, ty_Ordering) → new_esEs21(wzz670, wzz680)
new_lt21(wzz79, wzz82, ty_Double) → new_lt15(wzz79, wzz82)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Int) → new_ltEs6(wzz670, wzz680)
new_esEs40(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_esEs29(wzz501, wzz4001, app(app(app(ty_@3, bgh), bha), bhb)) → new_esEs20(wzz501, wzz4001, bgh, bha, bhb)
new_lt18(wzz5, wzz40, cba, cbb) → new_esEs26(new_compare15(wzz5, wzz40, cba, cbb))
new_ltEs4(Left(wzz670), Left(wzz680), ty_Ordering, db) → new_ltEs9(wzz670, wzz680)
new_lt24(wzz5, wzz40, app(ty_Maybe, bgc)) → new_lt11(wzz5, wzz40, bgc)
new_esEs35(wzz670, wzz680, ty_Float) → new_esEs16(wzz670, wzz680)
new_esEs27(wzz671, wzz681, ty_Int) → new_esEs24(wzz671, wzz681)
new_esEs28(wzz670, wzz680, ty_Int) → new_esEs24(wzz670, wzz680)
new_lt5(wzz671, wzz681, app(ty_Ratio, bdb)) → new_lt16(wzz671, wzz681, bdb)
new_primEqInt(Neg(Succ(wzz5000)), Neg(Succ(wzz40000))) → new_primEqNat0(wzz5000, wzz40000)
new_esEs6(wzz50, wzz400, app(app(ty_Either, fca), fcb)) → new_esEs15(wzz50, wzz400, fca, fcb)
new_lt21(wzz79, wzz82, ty_Integer) → new_lt9(wzz79, wzz82)
new_compare31(wzz50, wzz400, app(app(ty_Either, gbb), gbc)) → new_compare15(wzz50, wzz400, gbb, gbc)
new_esEs20(@3(wzz500, wzz501, wzz502), @3(wzz4000, wzz4001, wzz4002), baa, bab, bac) → new_asAs(new_esEs40(wzz500, wzz4000, baa), new_asAs(new_esEs39(wzz501, wzz4001, bab), new_esEs38(wzz502, wzz4002, bac)))
new_esEs7(wzz52, wzz402, ty_Integer) → new_esEs23(wzz52, wzz402)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Float, db) → new_ltEs12(wzz670, wzz680)
new_lt22(wzz112, wzz114, app(app(ty_@2, dcd), dce)) → new_lt4(wzz112, wzz114, dcd, dce)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs30(wzz500, wzz4000, app(ty_Ratio, cae)) → new_esEs22(wzz500, wzz4000, cae)
new_esEs30(wzz500, wzz4000, app(app(ty_@2, bhh), caa)) → new_esEs19(wzz500, wzz4000, bhh, caa)
new_esEs8(wzz51, wzz401, app(app(ty_@2, ehe), ehf)) → new_esEs19(wzz51, wzz401, ehe, ehf)
new_esEs28(wzz670, wzz680, ty_Double) → new_esEs13(wzz670, wzz680)
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_lt21(wzz79, wzz82, app(ty_Ratio, cgh)) → new_lt16(wzz79, wzz82, cgh)
new_compare10(LT, EQ) → LT
new_esEs38(wzz502, wzz4002, ty_Float) → new_esEs16(wzz502, wzz4002)
new_primCompAux0(wzz88, GT) → GT
new_ltEs21(wzz101, wzz102, ty_Int) → new_ltEs6(wzz101, wzz102)
new_compare26(wzz94, wzz95, True, beg, beh) → EQ
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_Int) → new_ltEs6(wzz670, wzz680)
new_esEs27(wzz671, wzz681, app(app(app(ty_@3, bcf), bcg), bch)) → new_esEs20(wzz671, wzz681, bcf, bcg, bch)
new_ltEs9(LT, LT) → True
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_ltEs23(wzz671, wzz681, app(ty_Ratio, eae)) → new_ltEs15(wzz671, wzz681, eae)
new_esEs10(wzz50, wzz400, app(app(ty_Either, deh), dfa)) → new_esEs15(wzz50, wzz400, deh, dfa)
new_primEqInt(Pos(Succ(wzz5000)), Pos(Succ(wzz40000))) → new_primEqNat0(wzz5000, wzz40000)
new_lt21(wzz79, wzz82, ty_Bool) → new_lt19(wzz79, wzz82)
new_esEs28(wzz670, wzz680, ty_Char) → new_esEs17(wzz670, wzz680)
new_esEs11(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_esEs38(wzz502, wzz4002, ty_Ordering) → new_esEs21(wzz502, wzz4002)
new_esEs34(wzz112, wzz114, ty_Int) → new_esEs24(wzz112, wzz114)
new_esEs28(wzz670, wzz680, app(app(ty_@2, bde), bdf)) → new_esEs19(wzz670, wzz680, bde, bdf)
new_ltEs20(wzz80, wzz83, ty_@0) → new_ltEs16(wzz80, wzz83)
new_primEqNat0(Succ(wzz5000), Succ(wzz40000)) → new_primEqNat0(wzz5000, wzz40000)
new_esEs35(wzz670, wzz680, app(ty_Maybe, ebb)) → new_esEs12(wzz670, wzz680, ebb)
new_lt21(wzz79, wzz82, ty_Int) → new_lt8(wzz79, wzz82)
new_esEs39(wzz501, wzz4001, ty_Bool) → new_esEs14(wzz501, wzz4001)
new_esEs4(wzz51, wzz401, ty_Integer) → new_esEs23(wzz51, wzz401)
new_esEs39(wzz501, wzz4001, app(ty_[], fgb)) → new_esEs25(wzz501, wzz4001, fgb)
new_esEs9(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_ltEs20(wzz80, wzz83, ty_Char) → new_ltEs5(wzz80, wzz83)
new_primCmpInt(Neg(Succ(wzz500)), Neg(wzz400)) → new_primCmpNat0(wzz400, Succ(wzz500))
new_compare31(wzz50, wzz400, ty_@0) → new_compare14(wzz50, wzz400)
new_esEs27(wzz671, wzz681, app(app(ty_Either, bdc), bdd)) → new_esEs15(wzz671, wzz681, bdc, bdd)
new_esEs9(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_lt24(wzz5, wzz40, app(app(app(ty_@3, ccf), ccg), cch)) → new_lt12(wzz5, wzz40, ccf, ccg, cch)
new_ltEs13(wzz67, wzz68, fdf) → new_fsEs(new_compare0(wzz67, wzz68, fdf))
new_esEs8(wzz51, wzz401, ty_Ordering) → new_esEs21(wzz51, wzz401)
new_esEs38(wzz502, wzz4002, ty_@0) → new_esEs18(wzz502, wzz4002)
new_esEs33(wzz78, wzz81, ty_Bool) → new_esEs14(wzz78, wzz81)
new_esEs27(wzz671, wzz681, ty_Ordering) → new_esEs21(wzz671, wzz681)
new_ltEs21(wzz101, wzz102, app(ty_Maybe, chg)) → new_ltEs10(wzz101, wzz102, chg)
new_lt24(wzz5, wzz40, ty_Int) → new_lt8(wzz5, wzz40)
new_esEs30(wzz500, wzz4000, app(app(ty_Either, bhf), bhg)) → new_esEs15(wzz500, wzz4000, bhf, bhg)
new_esEs33(wzz78, wzz81, ty_@0) → new_esEs18(wzz78, wzz81)
new_esEs32(wzz79, wzz82, app(ty_Maybe, cgc)) → new_esEs12(wzz79, wzz82, cgc)
new_gt(wzz23, wzz18, ty_Double) → new_esEs41(new_compare8(wzz23, wzz18))
new_ltEs23(wzz671, wzz681, app(app(app(ty_@3, eaa), eab), eac)) → new_ltEs11(wzz671, wzz681, eaa, eab, eac)
new_esEs29(wzz501, wzz4001, ty_Int) → new_esEs24(wzz501, wzz4001)
new_compare210(wzz67, wzz68, True, fde) → EQ
new_ltEs18(wzz672, wzz682, app(app(ty_Either, bca), bcb)) → new_ltEs4(wzz672, wzz682, bca, bcb)
new_esEs7(wzz52, wzz402, app(app(ty_@2, egc), egd)) → new_esEs19(wzz52, wzz402, egc, egd)
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_Char) → new_ltEs5(wzz670, wzz680)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Bool) → new_esEs14(wzz500, wzz4000)
new_esEs8(wzz51, wzz401, ty_Char) → new_esEs17(wzz51, wzz401)
new_primEqInt(Neg(Zero), Pos(Succ(wzz40000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(wzz40000))) → False
new_esEs35(wzz670, wzz680, app(app(ty_Either, ebh), eca)) → new_esEs15(wzz670, wzz680, ebh, eca)
new_esEs9(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_lt9(wzz5, wzz40) → new_esEs26(new_compare7(wzz5, wzz40))
new_primCmpInt(Pos(Zero), Pos(Succ(wzz4000))) → new_primCmpNat0(Zero, Succ(wzz4000))
new_lt22(wzz112, wzz114, ty_Char) → new_lt7(wzz112, wzz114)
new_lt23(wzz670, wzz680, ty_Int) → new_lt8(wzz670, wzz680)
new_esEs10(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_compare29(True, True) → EQ
new_esEs33(wzz78, wzz81, ty_Float) → new_esEs16(wzz78, wzz81)
new_esEs6(wzz50, wzz400, app(ty_Ratio, fch)) → new_esEs22(wzz50, wzz400, fch)
new_lt23(wzz670, wzz680, ty_Bool) → new_lt19(wzz670, wzz680)
new_esEs5(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_lt23(wzz670, wzz680, ty_Integer) → new_lt9(wzz670, wzz680)
new_primCompAux0(wzz88, LT) → LT
new_lt20(wzz78, wzz81, ty_Bool) → new_lt19(wzz78, wzz81)
new_not(False) → True
new_esEs28(wzz670, wzz680, ty_Ordering) → new_esEs21(wzz670, wzz680)
new_compare13(Nothing, Nothing, bgc) → EQ
new_esEs32(wzz79, wzz82, app(app(ty_@2, cga), cgb)) → new_esEs19(wzz79, wzz82, cga, cgb)
new_esEs40(wzz500, wzz4000, app(app(ty_Either, fgc), fgd)) → new_esEs15(wzz500, wzz4000, fgc, fgd)
new_ltEs22(wzz113, wzz115, app(app(ty_Either, def), deg)) → new_ltEs4(wzz113, wzz115, def, deg)
new_gt(wzz23, wzz18, ty_Bool) → new_esEs41(new_compare29(wzz23, wzz18))
new_esEs29(wzz501, wzz4001, ty_@0) → new_esEs18(wzz501, wzz4001)
new_compare16(:%(wzz50, wzz51), :%(wzz400, wzz401), ty_Int) → new_compare9(new_sr(wzz50, wzz401), new_sr(wzz400, wzz51))
new_ltEs6(wzz67, wzz68) → new_fsEs(new_compare9(wzz67, wzz68))
new_esEs15(Right(wzz500), Right(wzz4000), he, app(ty_[], eee)) → new_esEs25(wzz500, wzz4000, eee)
new_ltEs9(LT, GT) → True
new_esEs5(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_compare13(Nothing, Just(wzz400), bgc) → LT
new_esEs7(wzz52, wzz402, ty_@0) → new_esEs18(wzz52, wzz402)
new_esEs6(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_esEs25(:(wzz500, wzz501), [], bae) → False
new_esEs25([], :(wzz4000, wzz4001), bae) → False
new_ltEs24(wzz67, wzz68, ty_Integer) → new_ltEs8(wzz67, wzz68)
new_compare17(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, True, wzz191, fhe, fhf, fhg) → new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, True, fhe, fhf, fhg)
new_lt6(wzz670, wzz680, app(app(ty_Either, bee), bef)) → new_lt18(wzz670, wzz680, bee, bef)
new_compare0(:(wzz50, wzz51), [], cah) → GT
new_esEs35(wzz670, wzz680, ty_Char) → new_esEs17(wzz670, wzz680)
new_lt22(wzz112, wzz114, ty_Float) → new_lt13(wzz112, wzz114)
new_lt24(wzz5, wzz40, ty_@0) → new_lt17(wzz5, wzz40)
new_esEs29(wzz501, wzz4001, app(ty_[], bhe)) → new_esEs25(wzz501, wzz4001, bhe)
new_esEs5(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_esEs8(wzz51, wzz401, ty_Int) → new_esEs24(wzz51, wzz401)
new_lt20(wzz78, wzz81, ty_Double) → new_lt15(wzz78, wzz81)
new_lt24(wzz5, wzz40, ty_Ordering) → new_lt10(wzz5, wzz40)
new_esEs7(wzz52, wzz402, ty_Char) → new_esEs17(wzz52, wzz402)
new_compare25(wzz112, wzz113, wzz114, wzz115, False, dcb, dcc) → new_compare19(wzz112, wzz113, wzz114, wzz115, new_lt22(wzz112, wzz114, dcb), new_asAs(new_esEs34(wzz112, wzz114, dcb), new_ltEs22(wzz113, wzz115, dcc)), dcb, dcc)
new_esEs11(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_ltEs20(wzz80, wzz83, ty_Bool) → new_ltEs17(wzz80, wzz83)
new_primMulInt(Neg(wzz510), Neg(wzz4010)) → Pos(new_primMulNat0(wzz510, wzz4010))
new_compare15(Right(wzz50), Left(wzz400), cba, cbb) → GT
new_lt24(wzz5, wzz40, ty_Integer) → new_lt9(wzz5, wzz40)
new_esEs39(wzz501, wzz4001, ty_Ordering) → new_esEs21(wzz501, wzz4001)
new_ltEs24(wzz67, wzz68, ty_Double) → new_ltEs14(wzz67, wzz68)
new_lt23(wzz670, wzz680, app(ty_Maybe, ebb)) → new_lt11(wzz670, wzz680, ebb)
new_primEqNat0(Succ(wzz5000), Zero) → False
new_primEqNat0(Zero, Succ(wzz40000)) → False
new_lt20(wzz78, wzz81, app(app(ty_Either, cee), cef)) → new_lt18(wzz78, wzz81, cee, cef)
new_compare19(wzz169, wzz170, wzz171, wzz172, False, wzz174, fdc, fdd) → new_compare111(wzz169, wzz170, wzz171, wzz172, wzz174, fdc, fdd)
new_ltEs18(wzz672, wzz682, ty_Bool) → new_ltEs17(wzz672, wzz682)
new_esEs33(wzz78, wzz81, app(ty_Ratio, ced)) → new_esEs22(wzz78, wzz81, ced)
new_esEs34(wzz112, wzz114, ty_Bool) → new_esEs14(wzz112, wzz114)
new_esEs27(wzz671, wzz681, app(ty_Ratio, bdb)) → new_esEs22(wzz671, wzz681, bdb)
new_lt12(wzz5, wzz40, ccf, ccg, cch) → new_esEs26(new_compare30(wzz5, wzz40, ccf, ccg, cch))
new_esEs33(wzz78, wzz81, ty_Char) → new_esEs17(wzz78, wzz81)
new_esEs11(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_ltEs4(Left(wzz670), Left(wzz680), app(app(app(ty_@3, df), dg), dh), db) → new_ltEs11(wzz670, wzz680, df, dg, dh)
new_lt22(wzz112, wzz114, app(ty_Ratio, ddc)) → new_lt16(wzz112, wzz114, ddc)
new_esEs33(wzz78, wzz81, app(ty_[], cec)) → new_esEs25(wzz78, wzz81, cec)
new_ltEs22(wzz113, wzz115, ty_Float) → new_ltEs12(wzz113, wzz115)
new_esEs33(wzz78, wzz81, ty_Ordering) → new_esEs21(wzz78, wzz81)
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_Bool) → new_ltEs17(wzz670, wzz680)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Bool, hf) → new_esEs14(wzz500, wzz4000)
new_esEs10(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_primCmpInt(Pos(Zero), Neg(Succ(wzz4000))) → GT
new_compare110(wzz143, wzz144, False, eef) → GT
new_compare0(:(wzz50, wzz51), :(wzz400, wzz401), cah) → new_primCompAux1(wzz50, wzz400, new_compare0(wzz51, wzz401, cah), cah)
new_lt21(wzz79, wzz82, app(ty_[], cgg)) → new_lt14(wzz79, wzz82, cgg)
new_ltEs10(Just(wzz670), Nothing, dag) → False
new_ltEs19(wzz94, wzz95, ty_Bool) → new_ltEs17(wzz94, wzz95)
new_ltEs18(wzz672, wzz682, ty_Float) → new_ltEs12(wzz672, wzz682)
new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, False, fhe, fhf, fhg) → GT
new_lt5(wzz671, wzz681, ty_Integer) → new_lt9(wzz671, wzz681)
new_ltEs22(wzz113, wzz115, app(ty_Ratio, dee)) → new_ltEs15(wzz113, wzz115, dee)
new_esEs5(wzz50, wzz400, app(app(ty_@2, hg), hh)) → new_esEs19(wzz50, wzz400, hg, hh)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Ordering) → new_ltEs9(wzz670, wzz680)
new_esEs5(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_compare18(wzz159, wzz160, True, fbg, fbh) → LT
new_esEs15(Left(wzz500), Left(wzz4000), ty_@0, hf) → new_esEs18(wzz500, wzz4000)
new_ltEs18(wzz672, wzz682, app(ty_Maybe, bbc)) → new_ltEs10(wzz672, wzz682, bbc)
new_ltEs24(wzz67, wzz68, app(ty_Ratio, cce)) → new_ltEs15(wzz67, wzz68, cce)
new_ltEs21(wzz101, wzz102, ty_Ordering) → new_ltEs9(wzz101, wzz102)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCompAux1(wzz50, wzz400, wzz51, cah) → new_primCompAux0(wzz51, new_compare31(wzz50, wzz400, cah))
new_esEs32(wzz79, wzz82, ty_Double) → new_esEs13(wzz79, wzz82)
new_compare10(GT, GT) → EQ
new_esEs9(wzz50, wzz400, ty_Int) → new_esEs24(wzz50, wzz400)
new_esEs30(wzz500, wzz4000, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_lt22(wzz112, wzz114, app(app(app(ty_@3, dcg), dch), dda)) → new_lt12(wzz112, wzz114, dcg, dch, dda)
new_asAs(False, wzz130) → False
new_gt(wzz23, wzz18, ty_Float) → new_esEs41(new_compare6(wzz23, wzz18))
new_primMulInt(Pos(wzz510), Neg(wzz4010)) → Neg(new_primMulNat0(wzz510, wzz4010))
new_primMulInt(Neg(wzz510), Pos(wzz4010)) → Neg(new_primMulNat0(wzz510, wzz4010))
new_esEs6(wzz50, wzz400, app(ty_Maybe, fda)) → new_esEs12(wzz50, wzz400, fda)
new_esEs32(wzz79, wzz82, ty_Int) → new_esEs24(wzz79, wzz82)
new_esEs27(wzz671, wzz681, ty_Double) → new_esEs13(wzz671, wzz681)
new_ltEs4(Left(wzz670), Left(wzz680), app(ty_[], ea), db) → new_ltEs13(wzz670, wzz680, ea)
new_lt5(wzz671, wzz681, ty_Int) → new_lt8(wzz671, wzz681)
new_lt20(wzz78, wzz81, app(ty_[], cec)) → new_lt14(wzz78, wzz81, cec)
new_ltEs18(wzz672, wzz682, app(app(ty_@2, bba), bbb)) → new_ltEs7(wzz672, wzz682, bba, bbb)
new_ltEs8(wzz67, wzz68) → new_fsEs(new_compare7(wzz67, wzz68))
new_compare31(wzz50, wzz400, app(app(ty_@2, gab), gac)) → new_compare5(wzz50, wzz400, gab, gac)
new_compare26(wzz94, wzz95, False, beg, beh) → new_compare11(wzz94, wzz95, new_ltEs19(wzz94, wzz95, beg), beg, beh)
new_esEs5(wzz50, wzz400, app(ty_[], bae)) → new_esEs25(wzz50, wzz400, bae)
new_lt5(wzz671, wzz681, app(app(app(ty_@3, bcf), bcg), bch)) → new_lt12(wzz671, wzz681, bcf, bcg, bch)
new_ltEs21(wzz101, wzz102, app(ty_Ratio, dad)) → new_ltEs15(wzz101, wzz102, dad)
new_esEs35(wzz670, wzz680, app(app(app(ty_@3, ebc), ebd), ebe)) → new_esEs20(wzz670, wzz680, ebc, ebd, ebe)
new_ltEs22(wzz113, wzz115, ty_Integer) → new_ltEs8(wzz113, wzz115)
new_compare31(wzz50, wzz400, app(ty_[], gah)) → new_compare0(wzz50, wzz400, gah)
new_lt23(wzz670, wzz680, app(ty_[], ebf)) → new_lt14(wzz670, wzz680, ebf)
new_esEs38(wzz502, wzz4002, ty_Double) → new_esEs13(wzz502, wzz4002)
new_ltEs16(wzz67, wzz68) → new_fsEs(new_compare14(wzz67, wzz68))
new_lt20(wzz78, wzz81, ty_Float) → new_lt13(wzz78, wzz81)
new_compare111(wzz169, wzz170, wzz171, wzz172, False, fdc, fdd) → GT
new_compare18(wzz159, wzz160, False, fbg, fbh) → GT
new_esEs40(wzz500, wzz4000, app(app(app(ty_@3, fgg), fgh), fha)) → new_esEs20(wzz500, wzz4000, fgg, fgh, fha)
new_lt24(wzz5, wzz40, ty_Double) → new_lt15(wzz5, wzz40)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Integer, db) → new_ltEs8(wzz670, wzz680)
new_compare5(@2(wzz50, wzz51), @2(wzz400, wzz401), ga, gb) → new_compare25(wzz50, wzz51, wzz400, wzz401, new_asAs(new_esEs5(wzz50, wzz400, ga), new_esEs4(wzz51, wzz401, gb)), ga, gb)
new_lt11(wzz5, wzz40, bgc) → new_esEs26(new_compare13(wzz5, wzz40, bgc))
new_esEs30(wzz500, wzz4000, ty_@0) → new_esEs18(wzz500, wzz4000)
new_esEs14(True, True) → True
new_lt22(wzz112, wzz114, ty_Integer) → new_lt9(wzz112, wzz114)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Float) → new_ltEs12(wzz670, wzz680)
new_esEs33(wzz78, wzz81, app(app(ty_Either, cee), cef)) → new_esEs15(wzz78, wzz81, cee, cef)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Int, hf) → new_esEs24(wzz500, wzz4000)
new_esEs39(wzz501, wzz4001, ty_Int) → new_esEs24(wzz501, wzz4001)
new_esEs21(GT, LT) → False
new_esEs21(LT, GT) → False
new_lt23(wzz670, wzz680, app(app(ty_@2, eah), eba)) → new_lt4(wzz670, wzz680, eah, eba)
new_esEs41(GT) → True
new_esEs34(wzz112, wzz114, ty_Char) → new_esEs17(wzz112, wzz114)
new_esEs11(wzz50, wzz400, app(app(ty_@2, dgd), dge)) → new_esEs19(wzz50, wzz400, dgd, dge)
new_lt22(wzz112, wzz114, app(ty_Maybe, dcf)) → new_lt11(wzz112, wzz114, dcf)
new_compare8(Double(wzz50, wzz51), Double(wzz400, wzz401)) → new_compare9(new_sr(wzz50, wzz400), new_sr(wzz51, wzz401))
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_compare16(:%(wzz50, wzz51), :%(wzz400, wzz401), ty_Integer) → new_compare7(new_sr0(wzz50, wzz401), new_sr0(wzz400, wzz51))
new_ltEs19(wzz94, wzz95, app(ty_Maybe, bfc)) → new_ltEs10(wzz94, wzz95, bfc)
new_ltEs18(wzz672, wzz682, ty_Double) → new_ltEs14(wzz672, wzz682)
new_compare7(Integer(wzz50), Integer(wzz400)) → new_primCmpInt(wzz50, wzz400)
new_esEs33(wzz78, wzz81, ty_Int) → new_esEs24(wzz78, wzz81)
new_ltEs17(False, True) → True
new_ltEs18(wzz672, wzz682, ty_Ordering) → new_ltEs9(wzz672, wzz682)
new_ltEs21(wzz101, wzz102, ty_Bool) → new_ltEs17(wzz101, wzz102)
new_esEs14(False, False) → True
new_esEs33(wzz78, wzz81, ty_Double) → new_esEs13(wzz78, wzz81)
new_esEs31(wzz500, wzz4000, app(ty_Ratio, ccb)) → new_esEs22(wzz500, wzz4000, ccb)
new_ltEs22(wzz113, wzz115, app(app(ty_@2, ddf), ddg)) → new_ltEs7(wzz113, wzz115, ddf, ddg)
new_esEs15(Right(wzz500), Right(wzz4000), he, app(ty_Maybe, eed)) → new_esEs12(wzz500, wzz4000, eed)
new_esEs11(wzz50, wzz400, app(ty_[], dhc)) → new_esEs25(wzz50, wzz400, dhc)
new_lt21(wzz79, wzz82, app(app(ty_@2, cga), cgb)) → new_lt4(wzz79, wzz82, cga, cgb)
new_lt24(wzz5, wzz40, ty_Char) → new_lt7(wzz5, wzz40)
new_esEs5(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Double, hf) → new_esEs13(wzz500, wzz4000)
new_ltEs15(wzz67, wzz68, cce) → new_fsEs(new_compare16(wzz67, wzz68, cce))
new_ltEs21(wzz101, wzz102, ty_Float) → new_ltEs12(wzz101, wzz102)
new_esEs12(Just(wzz500), Just(wzz4000), app(ty_Maybe, cg)) → new_esEs12(wzz500, wzz4000, cg)
new_esEs31(wzz500, wzz4000, ty_@0) → new_esEs18(wzz500, wzz4000)
new_esEs9(wzz50, wzz400, app(app(app(ty_@3, fba), fbb), fbc)) → new_esEs20(wzz50, wzz400, fba, fbb, fbc)
new_compare0([], :(wzz400, wzz401), cah) → LT
new_esEs15(Left(wzz500), Left(wzz4000), app(app(app(ty_@3, ecf), ecg), ech), hf) → new_esEs20(wzz500, wzz4000, ecf, ecg, ech)
new_esEs11(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_esEs26(LT) → True
new_esEs12(Just(wzz500), Just(wzz4000), app(app(ty_@2, ca), cb)) → new_esEs19(wzz500, wzz4000, ca, cb)
new_asAs(True, wzz130) → wzz130
new_ltEs7(@2(wzz670, wzz671), @2(wzz680, wzz681), dhd, dhe) → new_pePe(new_lt23(wzz670, wzz680, dhd), new_asAs(new_esEs35(wzz670, wzz680, dhd), new_ltEs23(wzz671, wzz681, dhe)))
new_lt24(wzz5, wzz40, app(ty_[], cah)) → new_lt14(wzz5, wzz40, cah)
new_esEs7(wzz52, wzz402, app(ty_Ratio, egh)) → new_esEs22(wzz52, wzz402, egh)
new_esEs11(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_esEs38(wzz502, wzz4002, ty_Int) → new_esEs24(wzz502, wzz4002)
new_esEs4(wzz51, wzz401, app(app(app(ty_@3, gg), gh), ha)) → new_esEs20(wzz51, wzz401, gg, gh, ha)
new_ltEs19(wzz94, wzz95, ty_Float) → new_ltEs12(wzz94, wzz95)
new_gt(wzz23, wzz18, app(app(ty_@2, eeg), eeh)) → new_esEs41(new_compare5(wzz23, wzz18, eeg, eeh))
new_compare31(wzz50, wzz400, ty_Int) → new_compare9(wzz50, wzz400)
new_esEs23(Integer(wzz500), Integer(wzz4000)) → new_primEqInt(wzz500, wzz4000)
new_ltEs10(Just(wzz670), Just(wzz680), app(app(ty_@2, dah), dba)) → new_ltEs7(wzz670, wzz680, dah, dba)
new_esEs27(wzz671, wzz681, ty_Integer) → new_esEs23(wzz671, wzz681)
new_esEs9(wzz50, wzz400, app(ty_Ratio, fbd)) → new_esEs22(wzz50, wzz400, fbd)
new_ltEs19(wzz94, wzz95, ty_Char) → new_ltEs5(wzz94, wzz95)
new_gt(wzz23, wzz18, ty_Ordering) → new_esEs41(new_compare10(wzz23, wzz18))
new_ltEs22(wzz113, wzz115, ty_@0) → new_ltEs16(wzz113, wzz115)
new_ltEs20(wzz80, wzz83, app(ty_Maybe, cfa)) → new_ltEs10(wzz80, wzz83, cfa)
new_ltEs22(wzz113, wzz115, ty_Ordering) → new_ltEs9(wzz113, wzz115)
new_compare10(GT, EQ) → GT
new_lt5(wzz671, wzz681, ty_Double) → new_lt15(wzz671, wzz681)
new_esEs33(wzz78, wzz81, ty_Integer) → new_esEs23(wzz78, wzz81)
new_ltEs20(wzz80, wzz83, ty_Int) → new_ltEs6(wzz80, wzz83)
new_esEs29(wzz501, wzz4001, ty_Bool) → new_esEs14(wzz501, wzz4001)
new_esEs38(wzz502, wzz4002, app(ty_Ratio, fef)) → new_esEs22(wzz502, wzz4002, fef)
new_lt6(wzz670, wzz680, ty_Ordering) → new_lt10(wzz670, wzz680)
new_esEs36(wzz501, wzz4001, ty_Int) → new_esEs24(wzz501, wzz4001)
new_lt23(wzz670, wzz680, ty_Float) → new_lt13(wzz670, wzz680)
new_ltEs4(Left(wzz670), Left(wzz680), app(app(ty_@2, dc), dd), db) → new_ltEs7(wzz670, wzz680, dc, dd)
new_compare13(Just(wzz50), Nothing, bgc) → GT
new_ltEs21(wzz101, wzz102, app(ty_[], dac)) → new_ltEs13(wzz101, wzz102, dac)
new_primCompAux0(wzz88, EQ) → wzz88
new_esEs5(wzz50, wzz400, app(app(ty_Either, he), hf)) → new_esEs15(wzz50, wzz400, he, hf)
new_ltEs10(Just(wzz670), Just(wzz680), app(app(app(ty_@3, dbc), dbd), dbe)) → new_ltEs11(wzz670, wzz680, dbc, dbd, dbe)
new_esEs31(wzz500, wzz4000, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_ltEs10(Just(wzz670), Just(wzz680), app(app(ty_Either, dbh), dca)) → new_ltEs4(wzz670, wzz680, dbh, dca)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_esEs9(wzz50, wzz400, app(app(ty_@2, fag), fah)) → new_esEs19(wzz50, wzz400, fag, fah)
new_esEs34(wzz112, wzz114, app(app(ty_Either, ddd), dde)) → new_esEs15(wzz112, wzz114, ddd, dde)
new_lt24(wzz5, wzz40, app(app(ty_@2, ga), gb)) → new_lt4(wzz5, wzz40, ga, gb)
new_esEs15(Right(wzz500), Right(wzz4000), he, app(app(ty_@2, edf), edg)) → new_esEs19(wzz500, wzz4000, edf, edg)
new_not(True) → False
new_lt16(wzz5, wzz40, cda) → new_esEs26(new_compare16(wzz5, wzz40, cda))
new_ltEs23(wzz671, wzz681, ty_Float) → new_ltEs12(wzz671, wzz681)
new_ltEs18(wzz672, wzz682, app(ty_Ratio, bbh)) → new_ltEs15(wzz672, wzz682, bbh)
new_lt21(wzz79, wzz82, ty_Float) → new_lt13(wzz79, wzz82)
new_compare10(EQ, LT) → GT
new_lt20(wzz78, wzz81, app(app(app(ty_@3, cdh), cea), ceb)) → new_lt12(wzz78, wzz81, cdh, cea, ceb)
new_ltEs17(False, False) → True
new_esEs29(wzz501, wzz4001, app(app(ty_@2, bgf), bgg)) → new_esEs19(wzz501, wzz4001, bgf, bgg)
new_esEs29(wzz501, wzz4001, app(ty_Ratio, bhc)) → new_esEs22(wzz501, wzz4001, bhc)
new_esEs39(wzz501, wzz4001, ty_@0) → new_esEs18(wzz501, wzz4001)
new_lt23(wzz670, wzz680, app(app(app(ty_@3, ebc), ebd), ebe)) → new_lt12(wzz670, wzz680, ebc, ebd, ebe)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Char) → new_esEs17(wzz500, wzz4000)
new_esEs39(wzz501, wzz4001, app(ty_Ratio, ffh)) → new_esEs22(wzz501, wzz4001, ffh)
new_lt6(wzz670, wzz680, ty_Char) → new_lt7(wzz670, wzz680)
new_esEs10(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_esEs5(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_compare29(False, False) → EQ
new_esEs6(wzz50, wzz400, app(app(app(ty_@3, fce), fcf), fcg)) → new_esEs20(wzz50, wzz400, fce, fcf, fcg)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Int) → new_esEs24(wzz500, wzz4000)
new_ltEs24(wzz67, wzz68, ty_Ordering) → new_ltEs9(wzz67, wzz68)
new_esEs7(wzz52, wzz402, ty_Double) → new_esEs13(wzz52, wzz402)
new_lt6(wzz670, wzz680, ty_Int) → new_lt8(wzz670, wzz680)
new_esEs34(wzz112, wzz114, app(app(app(ty_@3, dcg), dch), dda)) → new_esEs20(wzz112, wzz114, dcg, dch, dda)
new_lt4(wzz5, wzz40, ga, gb) → new_esEs26(new_compare5(wzz5, wzz40, ga, gb))
new_esEs15(Left(wzz500), Left(wzz4000), app(app(ty_Either, ecb), ecc), hf) → new_esEs15(wzz500, wzz4000, ecb, ecc)
new_esEs22(:%(wzz500, wzz501), :%(wzz4000, wzz4001), bad) → new_asAs(new_esEs37(wzz500, wzz4000, bad), new_esEs36(wzz501, wzz4001, bad))
new_ltEs10(Just(wzz670), Just(wzz680), ty_Char) → new_ltEs5(wzz670, wzz680)
new_primMulNat0(Zero, Zero) → Zero
new_esEs29(wzz501, wzz4001, ty_Float) → new_esEs16(wzz501, wzz4001)
new_ltEs20(wzz80, wzz83, ty_Float) → new_ltEs12(wzz80, wzz83)
new_esEs34(wzz112, wzz114, app(ty_Ratio, ddc)) → new_esEs22(wzz112, wzz114, ddc)
new_esEs32(wzz79, wzz82, app(ty_Ratio, cgh)) → new_esEs22(wzz79, wzz82, cgh)
new_compare6(Float(wzz50, wzz51), Float(wzz400, wzz401)) → new_compare9(new_sr(wzz50, wzz400), new_sr(wzz51, wzz401))
new_esEs15(Left(wzz500), Left(wzz4000), ty_Ordering, hf) → new_esEs21(wzz500, wzz4000)
new_esEs35(wzz670, wzz680, ty_Int) → new_esEs24(wzz670, wzz680)
new_ltEs22(wzz113, wzz115, ty_Double) → new_ltEs14(wzz113, wzz115)
new_lt5(wzz671, wzz681, app(app(ty_@2, bcc), bcd)) → new_lt4(wzz671, wzz681, bcc, bcd)
new_esEs4(wzz51, wzz401, app(ty_Ratio, hb)) → new_esEs22(wzz51, wzz401, hb)
new_ltEs23(wzz671, wzz681, app(app(ty_Either, eaf), eag)) → new_ltEs4(wzz671, wzz681, eaf, eag)
new_compare12(Char(wzz50), Char(wzz400)) → new_primCmpNat0(wzz50, wzz400)
new_esEs40(wzz500, wzz4000, ty_Float) → new_esEs16(wzz500, wzz4000)
new_ltEs4(Right(wzz670), Right(wzz680), ee, app(app(app(ty_@3, fa), fb), fc)) → new_ltEs11(wzz670, wzz680, fa, fb, fc)
new_esEs21(LT, LT) → True
new_esEs11(wzz50, wzz400, app(app(ty_Either, dgb), dgc)) → new_esEs15(wzz50, wzz400, dgb, dgc)
new_lt17(wzz5, wzz40) → new_esEs26(new_compare14(wzz5, wzz40))
new_esEs4(wzz51, wzz401, app(app(ty_Either, gc), gd)) → new_esEs15(wzz51, wzz401, gc, gd)
new_ltEs10(Just(wzz670), Just(wzz680), ty_@0) → new_ltEs16(wzz670, wzz680)
new_ltEs9(LT, EQ) → True
new_esEs10(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_esEs7(wzz52, wzz402, ty_Int) → new_esEs24(wzz52, wzz402)
new_compare29(False, True) → LT
new_ltEs4(Left(wzz670), Left(wzz680), app(ty_Maybe, de), db) → new_ltEs10(wzz670, wzz680, de)
new_esEs38(wzz502, wzz4002, app(ty_[], feh)) → new_esEs25(wzz502, wzz4002, feh)
new_esEs8(wzz51, wzz401, app(ty_[], fad)) → new_esEs25(wzz51, wzz401, fad)
new_lt5(wzz671, wzz681, ty_@0) → new_lt17(wzz671, wzz681)
new_esEs35(wzz670, wzz680, ty_@0) → new_esEs18(wzz670, wzz680)
new_lt24(wzz5, wzz40, ty_Bool) → new_lt19(wzz5, wzz40)
new_esEs27(wzz671, wzz681, app(ty_[], bda)) → new_esEs25(wzz671, wzz681, bda)
new_esEs25([], [], bae) → True
new_esEs8(wzz51, wzz401, app(ty_Ratio, fab)) → new_esEs22(wzz51, wzz401, fab)
new_compare14(@0, @0) → EQ
new_esEs11(wzz50, wzz400, app(ty_Maybe, dhb)) → new_esEs12(wzz50, wzz400, dhb)
new_esEs16(Float(wzz500, wzz501), Float(wzz4000, wzz4001)) → new_esEs24(new_sr(wzz500, wzz4000), new_sr(wzz501, wzz4001))
new_compare9(wzz5, wzz40) → new_primCmpInt(wzz5, wzz40)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Float) → new_esEs16(wzz500, wzz4000)
new_esEs30(wzz500, wzz4000, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_esEs32(wzz79, wzz82, ty_Integer) → new_esEs23(wzz79, wzz82)
new_lt6(wzz670, wzz680, ty_Integer) → new_lt9(wzz670, wzz680)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Bool, db) → new_ltEs17(wzz670, wzz680)
new_esEs5(wzz50, wzz400, ty_@0) → new_esEs18(wzz50, wzz400)
new_ltEs4(Left(wzz670), Right(wzz680), ee, db) → True
new_esEs21(GT, EQ) → False
new_esEs21(EQ, GT) → False
new_primCmpNat0(Zero, Succ(wzz4000)) → LT
new_esEs32(wzz79, wzz82, ty_Bool) → new_esEs14(wzz79, wzz82)
new_ltEs20(wzz80, wzz83, ty_Double) → new_ltEs14(wzz80, wzz83)
new_esEs9(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_esEs8(wzz51, wzz401, app(app(app(ty_@3, ehg), ehh), faa)) → new_esEs20(wzz51, wzz401, ehg, ehh, faa)
new_esEs30(wzz500, wzz4000, app(ty_Maybe, caf)) → new_esEs12(wzz500, wzz4000, caf)
new_ltEs24(wzz67, wzz68, app(ty_Maybe, dag)) → new_ltEs10(wzz67, wzz68, dag)
new_ltEs10(Just(wzz670), Just(wzz680), app(ty_Maybe, dbb)) → new_ltEs10(wzz670, wzz680, dbb)
new_esEs27(wzz671, wzz681, app(ty_Maybe, bce)) → new_esEs12(wzz671, wzz681, bce)
new_lt5(wzz671, wzz681, ty_Bool) → new_lt19(wzz671, wzz681)
new_compare10(EQ, GT) → LT
new_esEs6(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_ltEs21(wzz101, wzz102, app(app(app(ty_@3, chh), daa), dab)) → new_ltEs11(wzz101, wzz102, chh, daa, dab)
new_ltEs4(Right(wzz670), Right(wzz680), ee, app(ty_[], fd)) → new_ltEs13(wzz670, wzz680, fd)
new_ltEs4(Right(wzz670), Right(wzz680), ee, app(ty_Maybe, eh)) → new_ltEs10(wzz670, wzz680, eh)
new_esEs29(wzz501, wzz4001, app(app(ty_Either, bgd), bge)) → new_esEs15(wzz501, wzz4001, bgd, bge)
new_esEs38(wzz502, wzz4002, app(ty_Maybe, feg)) → new_esEs12(wzz502, wzz4002, feg)
new_ltEs24(wzz67, wzz68, ty_@0) → new_ltEs16(wzz67, wzz68)
new_ltEs9(EQ, LT) → False
new_esEs34(wzz112, wzz114, ty_@0) → new_esEs18(wzz112, wzz114)
new_esEs40(wzz500, wzz4000, ty_@0) → new_esEs18(wzz500, wzz4000)
new_lt24(wzz5, wzz40, ty_Float) → new_lt13(wzz5, wzz40)
new_ltEs23(wzz671, wzz681, ty_Int) → new_ltEs6(wzz671, wzz681)
new_sr(wzz51, wzz401) → new_primMulInt(wzz51, wzz401)
new_esEs5(wzz50, wzz400, app(ty_Ratio, bad)) → new_esEs22(wzz50, wzz400, bad)
new_ltEs11(@3(wzz670, wzz671, wzz672), @3(wzz680, wzz681, wzz682), baf, bag, bah) → new_pePe(new_lt6(wzz670, wzz680, baf), new_asAs(new_esEs28(wzz670, wzz680, baf), new_pePe(new_lt5(wzz671, wzz681, bag), new_asAs(new_esEs27(wzz671, wzz681, bag), new_ltEs18(wzz672, wzz682, bah)))))
new_esEs6(wzz50, wzz400, app(ty_[], fdb)) → new_esEs25(wzz50, wzz400, fdb)
new_ltEs24(wzz67, wzz68, app(app(app(ty_@3, baf), bag), bah)) → new_ltEs11(wzz67, wzz68, baf, bag, bah)
new_compare10(EQ, EQ) → EQ
new_lt20(wzz78, wzz81, app(ty_Maybe, cdg)) → new_lt11(wzz78, wzz81, cdg)
new_esEs6(wzz50, wzz400, ty_Float) → new_esEs16(wzz50, wzz400)
new_lt15(wzz5, wzz40) → new_esEs26(new_compare8(wzz5, wzz40))
new_esEs9(wzz50, wzz400, ty_Ordering) → new_esEs21(wzz50, wzz400)
new_esEs10(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_esEs10(wzz50, wzz400, app(app(app(ty_@3, dfd), dfe), dff)) → new_esEs20(wzz50, wzz400, dfd, dfe, dff)
new_ltEs10(Just(wzz670), Just(wzz680), ty_Bool) → new_ltEs17(wzz670, wzz680)
new_ltEs23(wzz671, wzz681, ty_Double) → new_ltEs14(wzz671, wzz681)
new_lt24(wzz5, wzz40, app(app(ty_Either, cba), cbb)) → new_lt18(wzz5, wzz40, cba, cbb)
new_compare210(wzz67, wzz68, False, fde) → new_compare110(wzz67, wzz68, new_ltEs24(wzz67, wzz68, fde), fde)
new_esEs28(wzz670, wzz680, ty_Float) → new_esEs16(wzz670, wzz680)
new_esEs30(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_lt14(wzz5, wzz40, cah) → new_esEs26(new_compare0(wzz5, wzz40, cah))
new_esEs40(wzz500, wzz4000, ty_Double) → new_esEs13(wzz500, wzz4000)
new_ltEs19(wzz94, wzz95, ty_Integer) → new_ltEs8(wzz94, wzz95)
new_esEs4(wzz51, wzz401, ty_Char) → new_esEs17(wzz51, wzz401)
new_ltEs12(wzz67, wzz68) → new_fsEs(new_compare6(wzz67, wzz68))
new_esEs38(wzz502, wzz4002, ty_Bool) → new_esEs14(wzz502, wzz4002)
new_ltEs17(True, False) → False
new_compare111(wzz169, wzz170, wzz171, wzz172, True, fdc, fdd) → LT
new_compare31(wzz50, wzz400, ty_Integer) → new_compare7(wzz50, wzz400)
new_esEs32(wzz79, wzz82, ty_Float) → new_esEs16(wzz79, wzz82)
new_esEs26(GT) → False
new_lt8(wzz5, wzz40) → new_esEs26(new_compare9(wzz5, wzz40))
new_esEs33(wzz78, wzz81, app(app(app(ty_@3, cdh), cea), ceb)) → new_esEs20(wzz78, wzz81, cdh, cea, ceb)
new_primEqInt(Neg(Zero), Neg(Succ(wzz40000))) → False
new_primEqInt(Neg(Succ(wzz5000)), Neg(Zero)) → False
new_ltEs4(Left(wzz670), Left(wzz680), app(app(ty_Either, ec), ed), db) → new_ltEs4(wzz670, wzz680, ec, ed)
new_esEs31(wzz500, wzz4000, ty_Float) → new_esEs16(wzz500, wzz4000)
new_esEs39(wzz501, wzz4001, app(ty_Maybe, fga)) → new_esEs12(wzz501, wzz4001, fga)
new_esEs4(wzz51, wzz401, app(app(ty_@2, ge), gf)) → new_esEs19(wzz51, wzz401, ge, gf)
new_esEs32(wzz79, wzz82, ty_Char) → new_esEs17(wzz79, wzz82)
new_esEs5(wzz50, wzz400, app(ty_Maybe, bf)) → new_esEs12(wzz50, wzz400, bf)
new_ltEs21(wzz101, wzz102, app(app(ty_Either, dae), daf)) → new_ltEs4(wzz101, wzz102, dae, daf)
new_compare10(LT, LT) → EQ
new_esEs28(wzz670, wzz680, ty_@0) → new_esEs18(wzz670, wzz680)
new_lt20(wzz78, wzz81, ty_Int) → new_lt8(wzz78, wzz81)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Char, hf) → new_esEs17(wzz500, wzz4000)
new_primCmpNat0(Succ(wzz500), Succ(wzz4000)) → new_primCmpNat0(wzz500, wzz4000)
new_esEs38(wzz502, wzz4002, app(app(ty_@2, fea), feb)) → new_esEs19(wzz502, wzz4002, fea, feb)
new_lt23(wzz670, wzz680, ty_@0) → new_lt17(wzz670, wzz680)
new_esEs8(wzz51, wzz401, app(app(ty_Either, ehc), ehd)) → new_esEs15(wzz51, wzz401, ehc, ehd)
new_ltEs18(wzz672, wzz682, app(app(app(ty_@3, bbd), bbe), bbf)) → new_ltEs11(wzz672, wzz682, bbd, bbe, bbf)
new_esEs14(True, False) → False
new_esEs14(False, True) → False
new_esEs29(wzz501, wzz4001, app(ty_Maybe, bhd)) → new_esEs12(wzz501, wzz4001, bhd)
new_ltEs19(wzz94, wzz95, ty_Double) → new_ltEs14(wzz94, wzz95)
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_Float) → new_ltEs12(wzz670, wzz680)
new_ltEs18(wzz672, wzz682, ty_@0) → new_ltEs16(wzz672, wzz682)
new_esEs21(EQ, EQ) → True
new_primEqInt(Pos(Zero), Pos(Succ(wzz40000))) → False
new_primEqInt(Pos(Succ(wzz5000)), Pos(Zero)) → False
new_primPlusNat0(Zero, Succ(wzz13200)) → Succ(wzz13200)
new_primPlusNat0(Succ(wzz45200), Zero) → Succ(wzz45200)
new_esEs30(wzz500, wzz4000, ty_Float) → new_esEs16(wzz500, wzz4000)
new_ltEs23(wzz671, wzz681, ty_Char) → new_ltEs5(wzz671, wzz681)
new_primCmpNat0(Zero, Zero) → EQ
new_compare27(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, True, cdb, cdc, cdd) → EQ
new_esEs32(wzz79, wzz82, ty_@0) → new_esEs18(wzz79, wzz82)
new_primCmpNat0(Succ(wzz500), Zero) → GT
new_ltEs21(wzz101, wzz102, ty_Double) → new_ltEs14(wzz101, wzz102)
new_lt20(wzz78, wzz81, app(app(ty_@2, cde), cdf)) → new_lt4(wzz78, wzz81, cde, cdf)
new_ltEs19(wzz94, wzz95, ty_Ordering) → new_ltEs9(wzz94, wzz95)
new_lt23(wzz670, wzz680, ty_Char) → new_lt7(wzz670, wzz680)
new_esEs15(Left(wzz500), Left(wzz4000), app(app(ty_@2, ecd), ece), hf) → new_esEs19(wzz500, wzz4000, ecd, ece)
new_primCmpInt(Neg(Zero), Pos(Succ(wzz4000))) → LT
new_compare11(wzz152, wzz153, True, fhh, gaa) → LT
new_compare31(wzz50, wzz400, ty_Char) → new_compare12(wzz50, wzz400)
new_lt5(wzz671, wzz681, ty_Char) → new_lt7(wzz671, wzz681)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Integer) → new_esEs23(wzz500, wzz4000)
new_sr0(Integer(wzz4000), Integer(wzz510)) → Integer(new_primMulInt(wzz4000, wzz510))
new_compare15(Right(wzz50), Right(wzz400), cba, cbb) → new_compare28(wzz50, wzz400, new_esEs11(wzz50, wzz400, cbb), cba, cbb)
new_esEs28(wzz670, wzz680, app(ty_Ratio, bed)) → new_esEs22(wzz670, wzz680, bed)
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_Double) → new_esEs13(wzz500, wzz4000)
new_ltEs4(Left(wzz670), Left(wzz680), app(ty_Ratio, eb), db) → new_ltEs15(wzz670, wzz680, eb)
new_compare28(wzz101, wzz102, True, chc, chd) → EQ
new_primEqInt(Neg(Succ(wzz5000)), Pos(wzz4000)) → False
new_primEqInt(Pos(Succ(wzz5000)), Neg(wzz4000)) → False
new_esEs7(wzz52, wzz402, app(ty_Maybe, eha)) → new_esEs12(wzz52, wzz402, eha)
new_esEs6(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_esEs37(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_lt22(wzz112, wzz114, ty_Int) → new_lt8(wzz112, wzz114)
new_esEs15(Right(wzz500), Right(wzz4000), he, app(app(ty_Either, edd), ede)) → new_esEs15(wzz500, wzz4000, edd, ede)
new_lt6(wzz670, wzz680, ty_Double) → new_lt15(wzz670, wzz680)
new_esEs38(wzz502, wzz4002, app(app(ty_Either, fdg), fdh)) → new_esEs15(wzz502, wzz4002, fdg, fdh)
new_esEs10(wzz50, wzz400, app(ty_[], dga)) → new_esEs25(wzz50, wzz400, dga)
new_esEs27(wzz671, wzz681, app(app(ty_@2, bcc), bcd)) → new_esEs19(wzz671, wzz681, bcc, bcd)
new_compare31(wzz50, wzz400, ty_Double) → new_compare8(wzz50, wzz400)
new_ltEs4(Right(wzz670), Right(wzz680), ee, app(app(ty_@2, ef), eg)) → new_ltEs7(wzz670, wzz680, ef, eg)
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_Char) → new_esEs17(wzz500, wzz4000)
new_esEs12(Just(wzz500), Just(wzz4000), ty_@0) → new_esEs18(wzz500, wzz4000)
new_gt(wzz23, wzz18, app(ty_Maybe, efa)) → new_esEs41(new_compare13(wzz23, wzz18, efa))
new_esEs41(EQ) → False
new_compare15(Left(wzz50), Left(wzz400), cba, cbb) → new_compare26(wzz50, wzz400, new_esEs10(wzz50, wzz400, cba), cba, cbb)
new_esEs38(wzz502, wzz4002, app(app(app(ty_@3, fec), fed), fee)) → new_esEs20(wzz502, wzz4002, fec, fed, fee)
new_ltEs10(Nothing, Nothing, dag) → True
new_ltEs4(Right(wzz670), Left(wzz680), ee, db) → False
new_esEs30(wzz500, wzz4000, app(app(app(ty_@3, cab), cac), cad)) → new_esEs20(wzz500, wzz4000, cab, cac, cad)
new_compare110(wzz143, wzz144, True, eef) → LT
new_primCmpInt(Pos(Succ(wzz500)), Pos(wzz400)) → new_primCmpNat0(Succ(wzz500), wzz400)
new_esEs40(wzz500, wzz4000, ty_Ordering) → new_esEs21(wzz500, wzz4000)
new_esEs37(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_ltEs24(wzz67, wzz68, ty_Float) → new_ltEs12(wzz67, wzz68)
new_ltEs10(Just(wzz670), Just(wzz680), app(ty_[], dbf)) → new_ltEs13(wzz670, wzz680, dbf)
new_ltEs19(wzz94, wzz95, ty_Int) → new_ltEs6(wzz94, wzz95)
new_esEs8(wzz51, wzz401, ty_Bool) → new_esEs14(wzz51, wzz401)
new_esEs35(wzz670, wzz680, ty_Double) → new_esEs13(wzz670, wzz680)
new_compare10(LT, GT) → LT
new_ltEs22(wzz113, wzz115, ty_Char) → new_ltEs5(wzz113, wzz115)
new_ltEs18(wzz672, wzz682, ty_Int) → new_ltEs6(wzz672, wzz682)
new_esEs11(wzz50, wzz400, app(ty_Ratio, dha)) → new_esEs22(wzz50, wzz400, dha)
new_lt6(wzz670, wzz680, app(ty_Maybe, bdg)) → new_lt11(wzz670, wzz680, bdg)
new_lt6(wzz670, wzz680, ty_@0) → new_lt17(wzz670, wzz680)
new_compare11(wzz152, wzz153, False, fhh, gaa) → GT
new_gt(wzz23, wzz18, ty_Int) → new_gt0(wzz23, wzz18)
new_esEs15(Right(wzz500), Right(wzz4000), he, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_primCmpInt(Pos(Succ(wzz500)), Neg(wzz400)) → GT
new_primMulInt(Pos(wzz510), Pos(wzz4010)) → Pos(new_primMulNat0(wzz510, wzz4010))
new_esEs27(wzz671, wzz681, ty_Char) → new_esEs17(wzz671, wzz681)
new_esEs39(wzz501, wzz4001, ty_Integer) → new_esEs23(wzz501, wzz4001)
new_gt(wzz23, wzz18, ty_@0) → new_esEs41(new_compare14(wzz23, wzz18))
new_ltEs23(wzz671, wzz681, app(app(ty_@2, dhf), dhg)) → new_ltEs7(wzz671, wzz681, dhf, dhg)
new_gt(wzz23, wzz18, app(ty_Ratio, eff)) → new_esEs41(new_compare16(wzz23, wzz18, eff))
new_primPlusNat0(Zero, Zero) → Zero
new_esEs7(wzz52, wzz402, ty_Ordering) → new_esEs21(wzz52, wzz402)
new_esEs39(wzz501, wzz4001, ty_Char) → new_esEs17(wzz501, wzz4001)
new_esEs7(wzz52, wzz402, ty_Float) → new_esEs16(wzz52, wzz402)
new_lt20(wzz78, wzz81, ty_@0) → new_lt17(wzz78, wzz81)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_esEs11(wzz50, wzz400, app(app(app(ty_@3, dgf), dgg), dgh)) → new_esEs20(wzz50, wzz400, dgf, dgg, dgh)
new_ltEs21(wzz101, wzz102, app(app(ty_@2, che), chf)) → new_ltEs7(wzz101, wzz102, che, chf)
new_esEs40(wzz500, wzz4000, app(app(ty_@2, fge), fgf)) → new_esEs19(wzz500, wzz4000, fge, fgf)
new_esEs5(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_ltEs9(GT, GT) → True
new_esEs9(wzz50, wzz400, ty_Bool) → new_esEs14(wzz50, wzz400)
new_ltEs21(wzz101, wzz102, ty_Char) → new_ltEs5(wzz101, wzz102)
new_esEs40(wzz500, wzz4000, app(ty_Ratio, fhb)) → new_esEs22(wzz500, wzz4000, fhb)
new_ltEs4(Right(wzz670), Right(wzz680), ee, app(ty_Ratio, ff)) → new_ltEs15(wzz670, wzz680, ff)
new_esEs15(Right(wzz500), Right(wzz4000), he, app(app(app(ty_@3, edh), eea), eeb)) → new_esEs20(wzz500, wzz4000, edh, eea, eeb)
new_esEs8(wzz51, wzz401, ty_@0) → new_esEs18(wzz51, wzz401)
new_esEs34(wzz112, wzz114, ty_Ordering) → new_esEs21(wzz112, wzz114)
new_primCmpInt(Neg(Zero), Neg(Succ(wzz4000))) → new_primCmpNat0(Succ(wzz4000), Zero)
new_lt10(wzz5, wzz40) → new_esEs26(new_compare10(wzz5, wzz40))
new_lt20(wzz78, wzz81, ty_Char) → new_lt7(wzz78, wzz81)
new_ltEs4(Left(wzz670), Left(wzz680), ty_Int, db) → new_ltEs6(wzz670, wzz680)
new_esEs39(wzz501, wzz4001, app(app(app(ty_@3, ffe), fff), ffg)) → new_esEs20(wzz501, wzz4001, ffe, fff, ffg)
new_esEs29(wzz501, wzz4001, ty_Integer) → new_esEs23(wzz501, wzz4001)
new_ltEs10(Nothing, Just(wzz680), dag) → True
new_ltEs21(wzz101, wzz102, ty_@0) → new_ltEs16(wzz101, wzz102)
new_esEs10(wzz50, wzz400, app(ty_Ratio, dfg)) → new_esEs22(wzz50, wzz400, dfg)
new_lt6(wzz670, wzz680, ty_Bool) → new_lt19(wzz670, wzz680)
new_ltEs21(wzz101, wzz102, ty_Integer) → new_ltEs8(wzz101, wzz102)
new_esEs33(wzz78, wzz81, app(ty_Maybe, cdg)) → new_esEs12(wzz78, wzz81, cdg)
new_ltEs24(wzz67, wzz68, ty_Bool) → new_ltEs17(wzz67, wzz68)
new_ltEs22(wzz113, wzz115, app(ty_[], ded)) → new_ltEs13(wzz113, wzz115, ded)
new_esEs28(wzz670, wzz680, app(ty_[], bec)) → new_esEs25(wzz670, wzz680, bec)
new_lt6(wzz670, wzz680, app(app(ty_@2, bde), bdf)) → new_lt4(wzz670, wzz680, bde, bdf)
new_lt22(wzz112, wzz114, ty_Ordering) → new_lt10(wzz112, wzz114)
new_ltEs5(wzz67, wzz68) → new_fsEs(new_compare12(wzz67, wzz68))
new_esEs4(wzz51, wzz401, ty_@0) → new_esEs18(wzz51, wzz401)
new_ltEs4(Right(wzz670), Right(wzz680), ee, ty_Integer) → new_ltEs8(wzz670, wzz680)
new_esEs4(wzz51, wzz401, app(ty_[], hd)) → new_esEs25(wzz51, wzz401, hd)
new_ltEs19(wzz94, wzz95, app(app(ty_@2, bfa), bfb)) → new_ltEs7(wzz94, wzz95, bfa, bfb)
new_esEs9(wzz50, wzz400, ty_Double) → new_esEs13(wzz50, wzz400)
new_esEs12(Just(wzz500), Just(wzz4000), ty_Double) → new_esEs13(wzz500, wzz4000)
new_primMulNat0(Zero, Succ(wzz40100)) → Zero
new_primMulNat0(Succ(wzz5100), Zero) → Zero
new_ltEs22(wzz113, wzz115, app(ty_Maybe, ddh)) → new_ltEs10(wzz113, wzz115, ddh)
new_esEs6(wzz50, wzz400, ty_Integer) → new_esEs23(wzz50, wzz400)
new_esEs15(Left(wzz500), Left(wzz4000), app(ty_Maybe, edb), hf) → new_esEs12(wzz500, wzz4000, edb)
new_esEs4(wzz51, wzz401, app(ty_Maybe, hc)) → new_esEs12(wzz51, wzz401, hc)
new_esEs29(wzz501, wzz4001, ty_Char) → new_esEs17(wzz501, wzz4001)
new_esEs29(wzz501, wzz4001, ty_Double) → new_esEs13(wzz501, wzz4001)
new_esEs30(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_lt5(wzz671, wzz681, ty_Float) → new_lt13(wzz671, wzz681)
new_esEs28(wzz670, wzz680, ty_Bool) → new_esEs14(wzz670, wzz680)
new_ltEs20(wzz80, wzz83, ty_Ordering) → new_ltEs9(wzz80, wzz83)
new_lt24(wzz5, wzz40, app(ty_Ratio, cda)) → new_lt16(wzz5, wzz40, cda)
new_esEs31(wzz500, wzz4000, ty_Integer) → new_esEs23(wzz500, wzz4000)
new_ltEs17(True, True) → True
new_compare30(@3(wzz50, wzz51, wzz52), @3(wzz400, wzz401, wzz402), ccf, ccg, cch) → new_compare27(wzz50, wzz51, wzz52, wzz400, wzz401, wzz402, new_asAs(new_esEs9(wzz50, wzz400, ccf), new_asAs(new_esEs8(wzz51, wzz401, ccg), new_esEs7(wzz52, wzz402, cch))), ccf, ccg, cch)
new_lt5(wzz671, wzz681, app(app(ty_Either, bdc), bdd)) → new_lt18(wzz671, wzz681, bdc, bdd)
new_ltEs18(wzz672, wzz682, ty_Char) → new_ltEs5(wzz672, wzz682)
new_lt22(wzz112, wzz114, app(app(ty_Either, ddd), dde)) → new_lt18(wzz112, wzz114, ddd, dde)
new_esEs24(wzz50, wzz400) → new_primEqInt(wzz50, wzz400)
new_esEs30(wzz500, wzz4000, app(ty_[], cag)) → new_esEs25(wzz500, wzz4000, cag)
new_esEs33(wzz78, wzz81, app(app(ty_@2, cde), cdf)) → new_esEs19(wzz78, wzz81, cde, cdf)
new_ltEs14(wzz67, wzz68) → new_fsEs(new_compare8(wzz67, wzz68))
new_ltEs9(GT, EQ) → False
new_lt22(wzz112, wzz114, ty_Double) → new_lt15(wzz112, wzz114)
new_esEs27(wzz671, wzz681, ty_Bool) → new_esEs14(wzz671, wzz681)
new_compare31(wzz50, wzz400, app(ty_Ratio, gba)) → new_compare16(wzz50, wzz400, gba)
new_esEs41(LT) → False
new_esEs4(wzz51, wzz401, ty_Double) → new_esEs13(wzz51, wzz401)
new_lt19(wzz5, wzz40) → new_esEs26(new_compare29(wzz5, wzz40))
new_esEs40(wzz500, wzz4000, app(ty_Maybe, fhc)) → new_esEs12(wzz500, wzz4000, fhc)
new_esEs6(wzz50, wzz400, ty_Char) → new_esEs17(wzz50, wzz400)
new_ltEs19(wzz94, wzz95, app(app(app(ty_@3, bfd), bfe), bff)) → new_ltEs11(wzz94, wzz95, bfd, bfe, bff)
new_compare31(wzz50, wzz400, ty_Float) → new_compare6(wzz50, wzz400)
new_esEs9(wzz50, wzz400, app(ty_Maybe, fbe)) → new_esEs12(wzz50, wzz400, fbe)
new_lt5(wzz671, wzz681, ty_Ordering) → new_lt10(wzz671, wzz681)
new_esEs4(wzz51, wzz401, ty_Ordering) → new_esEs21(wzz51, wzz401)
new_esEs28(wzz670, wzz680, app(app(ty_Either, bee), bef)) → new_esEs15(wzz670, wzz680, bee, bef)
new_esEs40(wzz500, wzz4000, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_esEs15(Left(wzz500), Left(wzz4000), ty_Float, hf) → new_esEs16(wzz500, wzz4000)
new_esEs4(wzz51, wzz401, ty_Float) → new_esEs16(wzz51, wzz401)
new_esEs40(wzz500, wzz4000, app(ty_[], fhd)) → new_esEs25(wzz500, wzz4000, fhd)
new_esEs7(wzz52, wzz402, app(app(ty_Either, ega), egb)) → new_esEs15(wzz52, wzz402, ega, egb)
new_esEs30(wzz500, wzz4000, ty_Char) → new_esEs17(wzz500, wzz4000)
new_ltEs20(wzz80, wzz83, ty_Integer) → new_ltEs8(wzz80, wzz83)
new_ltEs22(wzz113, wzz115, ty_Int) → new_ltEs6(wzz113, wzz115)
new_lt21(wzz79, wzz82, app(app(ty_Either, cha), chb)) → new_lt18(wzz79, wzz82, cha, chb)
new_esEs25(:(wzz500, wzz501), :(wzz4000, wzz4001), bae) → new_asAs(new_esEs31(wzz500, wzz4000, bae), new_esEs25(wzz501, wzz4001, bae))
new_lt6(wzz670, wzz680, ty_Float) → new_lt13(wzz670, wzz680)
new_primMulNat0(Succ(wzz5100), Succ(wzz40100)) → new_primPlusNat0(new_primMulNat0(wzz5100, Succ(wzz40100)), Succ(wzz40100))
new_esEs10(wzz50, wzz400, app(app(ty_@2, dfb), dfc)) → new_esEs19(wzz50, wzz400, dfb, dfc)
new_ltEs24(wzz67, wzz68, app(ty_[], fdf)) → new_ltEs13(wzz67, wzz68, fdf)
new_primPlusNat0(Succ(wzz45200), Succ(wzz13200)) → Succ(Succ(new_primPlusNat0(wzz45200, wzz13200)))
new_esEs8(wzz51, wzz401, ty_Integer) → new_esEs23(wzz51, wzz401)
new_lt20(wzz78, wzz81, ty_Ordering) → new_lt10(wzz78, wzz81)
new_esEs27(wzz671, wzz681, ty_Float) → new_esEs16(wzz671, wzz681)
new_esEs28(wzz670, wzz680, app(app(app(ty_@3, bdh), bea), beb)) → new_esEs20(wzz670, wzz680, bdh, bea, beb)
new_esEs29(wzz501, wzz4001, ty_Ordering) → new_esEs21(wzz501, wzz4001)
new_esEs40(wzz500, wzz4000, ty_Char) → new_esEs17(wzz500, wzz4000)
new_esEs39(wzz501, wzz4001, ty_Float) → new_esEs16(wzz501, wzz4001)
new_esEs9(wzz50, wzz400, app(ty_[], fbf)) → new_esEs25(wzz50, wzz400, fbf)
new_esEs39(wzz501, wzz4001, ty_Double) → new_esEs13(wzz501, wzz4001)
new_compare13(Just(wzz50), Just(wzz400), bgc) → new_compare210(wzz50, wzz400, new_esEs6(wzz50, wzz400, bgc), bgc)
new_lt22(wzz112, wzz114, app(ty_[], ddb)) → new_lt14(wzz112, wzz114, ddb)
new_esEs28(wzz670, wzz680, app(ty_Maybe, bdg)) → new_esEs12(wzz670, wzz680, bdg)
new_esEs34(wzz112, wzz114, app(ty_[], ddb)) → new_esEs25(wzz112, wzz114, ddb)
new_esEs18(@0, @0) → True
new_compare15(Left(wzz50), Right(wzz400), cba, cbb) → LT
new_ltEs24(wzz67, wzz68, app(app(ty_Either, ee), db)) → new_ltEs4(wzz67, wzz68, ee, db)
new_esEs19(@2(wzz500, wzz501), @2(wzz4000, wzz4001), hg, hh) → new_asAs(new_esEs30(wzz500, wzz4000, hg), new_esEs29(wzz501, wzz4001, hh))
new_esEs34(wzz112, wzz114, app(app(ty_@2, dcd), dce)) → new_esEs19(wzz112, wzz114, dcd, dce)
new_esEs12(Just(wzz500), Just(wzz4000), app(ty_Ratio, cf)) → new_esEs22(wzz500, wzz4000, cf)
new_lt23(wzz670, wzz680, app(app(ty_Either, ebh), eca)) → new_lt18(wzz670, wzz680, ebh, eca)
new_esEs21(EQ, LT) → False
new_esEs21(LT, EQ) → False
new_esEs31(wzz500, wzz4000, ty_Bool) → new_esEs14(wzz500, wzz4000)
new_compare112(wzz184, wzz185, wzz186, wzz187, wzz188, wzz189, True, fhe, fhf, fhg) → LT
new_esEs31(wzz500, wzz4000, app(app(app(ty_@3, cbg), cbh), cca)) → new_esEs20(wzz500, wzz4000, cbg, cbh, cca)
new_lt5(wzz671, wzz681, app(ty_Maybe, bce)) → new_lt11(wzz671, wzz681, bce)
new_esEs32(wzz79, wzz82, app(ty_[], cgg)) → new_esEs25(wzz79, wzz82, cgg)
new_compare29(True, False) → GT
new_ltEs24(wzz67, wzz68, ty_Int) → new_ltEs6(wzz67, wzz68)
new_lt21(wzz79, wzz82, app(app(app(ty_@3, cgd), cge), cgf)) → new_lt12(wzz79, wzz82, cgd, cge, cgf)
new_esEs39(wzz501, wzz4001, app(app(ty_@2, ffc), ffd)) → new_esEs19(wzz501, wzz4001, ffc, ffd)
new_fsEs(wzz197) → new_not(new_esEs21(wzz197, GT))
new_compare31(wzz50, wzz400, app(ty_Maybe, gad)) → new_compare13(wzz50, wzz400, gad)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_compare27(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, False, cdb, cdc, cdd) → new_compare17(wzz78, wzz79, wzz80, wzz81, wzz82, wzz83, new_lt20(wzz78, wzz81, cdb), new_asAs(new_esEs33(wzz78, wzz81, cdb), new_pePe(new_lt21(wzz79, wzz82, cdc), new_asAs(new_esEs32(wzz79, wzz82, cdc), new_ltEs20(wzz80, wzz83, cdd)))), cdb, cdc, cdd)
new_esEs38(wzz502, wzz4002, ty_Integer) → new_esEs23(wzz502, wzz4002)
new_gt0(wzz23, wzz18) → new_esEs41(new_compare9(wzz23, wzz18))
new_ltEs19(wzz94, wzz95, ty_@0) → new_ltEs16(wzz94, wzz95)
new_ltEs18(wzz672, wzz682, ty_Integer) → new_ltEs8(wzz672, wzz682)
new_ltEs19(wzz94, wzz95, app(ty_[], bfg)) → new_ltEs13(wzz94, wzz95, bfg)
new_esEs4(wzz51, wzz401, ty_Int) → new_esEs24(wzz51, wzz401)
new_lt6(wzz670, wzz680, app(app(app(ty_@3, bdh), bea), beb)) → new_lt12(wzz670, wzz680, bdh, bea, beb)
new_ltEs22(wzz113, wzz115, app(app(app(ty_@3, dea), deb), dec)) → new_ltEs11(wzz113, wzz115, dea, deb, dec)
new_primCmpInt(Neg(Succ(wzz500)), Pos(wzz400)) → LT
new_esEs31(wzz500, wzz4000, ty_Int) → new_esEs24(wzz500, wzz4000)
new_esEs32(wzz79, wzz82, ty_Ordering) → new_esEs21(wzz79, wzz82)

The set Q consists of the following terms:

new_lt24(x0, x1, app(ty_Ratio, x2))
new_ltEs12(x0, x1)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_primEqNat0(Succ(x0), Zero)
new_esEs21(LT, LT)
new_ltEs10(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs35(x0, x1, ty_Ordering)
new_esEs5(x0, x1, ty_Float)
new_esEs33(x0, x1, ty_Double)
new_compare10(LT, LT)
new_lt6(x0, x1, ty_Char)
new_lt22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt24(x0, x1, ty_Integer)
new_esEs5(x0, x1, ty_Char)
new_esEs29(x0, x1, ty_Bool)
new_ltEs22(x0, x1, app(ty_[], x2))
new_lt23(x0, x1, app(ty_Ratio, x2))
new_ltEs22(x0, x1, app(ty_Ratio, x2))
new_esEs10(x0, x1, ty_@0)
new_esEs25(:(x0, x1), :(x2, x3), x4)
new_esEs33(x0, x1, ty_@0)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, app(ty_Maybe, x2))
new_ltEs22(x0, x1, ty_Ordering)
new_esEs12(Just(x0), Just(x1), ty_Integer)
new_lt24(x0, x1, ty_@0)
new_compare31(x0, x1, ty_Integer)
new_esEs40(x0, x1, app(ty_Maybe, x2))
new_ltEs19(x0, x1, ty_@0)
new_esEs40(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs12(Just(x0), Just(x1), ty_@0)
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs7(x0, x1, app(ty_Ratio, x2))
new_compare26(x0, x1, True, x2, x3)
new_ltEs23(x0, x1, ty_@0)
new_esEs12(Just(x0), Just(x1), ty_Int)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_compare11(x0, x1, True, x2, x3)
new_esEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, ty_Integer)
new_esEs30(x0, x1, ty_Float)
new_primPlusNat0(Succ(x0), Zero)
new_ltEs4(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt6(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare10(GT, LT)
new_compare10(LT, GT)
new_primCmpNat0(Zero, Succ(x0))
new_esEs30(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, ty_Float)
new_esEs4(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt22(x0, x1, app(ty_[], x2))
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs32(x0, x1, app(ty_[], x2))
new_primCompAux0(x0, GT)
new_compare210(x0, x1, False, x2)
new_ltEs4(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt22(x0, x1, ty_@0)
new_ltEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs25([], [], x0)
new_lt6(x0, x1, app(app(ty_@2, x2), x3))
new_compare8(Double(x0, x1), Double(x2, x3))
new_esEs34(x0, x1, ty_Integer)
new_esEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_lt6(x0, x1, ty_@0)
new_esEs12(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs38(x0, x1, app(ty_Maybe, x2))
new_esEs32(x0, x1, ty_@0)
new_esEs28(x0, x1, ty_Integer)
new_esEs6(x0, x1, app(app(ty_Either, x2), x3))
new_compare17(x0, x1, x2, x3, x4, x5, True, x6, x7, x8, x9)
new_lt23(x0, x1, app(ty_Maybe, x2))
new_esEs30(x0, x1, ty_Double)
new_compare10(EQ, EQ)
new_esEs34(x0, x1, ty_Bool)
new_esEs21(EQ, GT)
new_esEs21(GT, EQ)
new_esEs6(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs21(x0, x1, ty_Bool)
new_esEs7(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt16(x0, x1, x2)
new_esEs6(x0, x1, ty_Int)
new_esEs9(x0, x1, ty_Integer)
new_ltEs9(EQ, EQ)
new_ltEs17(False, False)
new_esEs12(Nothing, Nothing, x0)
new_esEs28(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs10(x0, x1, app(ty_[], x2))
new_esEs4(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, ty_Bool)
new_primEqNat0(Zero, Zero)
new_lt12(x0, x1, x2, x3, x4)
new_esEs32(x0, x1, ty_Bool)
new_esEs31(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, ty_Char)
new_ltEs24(x0, x1, ty_Ordering)
new_esEs32(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare112(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_esEs31(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(ty_[], x2))
new_esEs9(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs6(x0, x1)
new_lt20(x0, x1, ty_Char)
new_esEs10(x0, x1, ty_Bool)
new_esEs15(Left(x0), Left(x1), ty_@0, x2)
new_primMulNat0(Zero, Zero)
new_esEs11(x0, x1, ty_Bool)
new_esEs8(x0, x1, ty_@0)
new_ltEs10(Just(x0), Just(x1), ty_Double)
new_ltEs20(x0, x1, ty_Float)
new_lt20(x0, x1, ty_Int)
new_compare27(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_esEs15(Right(x0), Right(x1), x2, ty_Double)
new_lt23(x0, x1, ty_Ordering)
new_ltEs10(Nothing, Just(x0), x1)
new_compare16(:%(x0, x1), :%(x2, x3), ty_Int)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_esEs30(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs31(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_esEs34(x0, x1, ty_Char)
new_esEs35(x0, x1, app(ty_Maybe, x2))
new_esEs5(x0, x1, app(app(ty_@2, x2), x3))
new_esEs39(x0, x1, ty_Float)
new_compare26(x0, x1, False, x2, x3)
new_lt5(x0, x1, ty_@0)
new_esEs40(x0, x1, ty_@0)
new_esEs37(x0, x1, ty_Integer)
new_esEs35(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs30(x0, x1, ty_Bool)
new_ltEs4(Left(x0), Right(x1), x2, x3)
new_ltEs4(Right(x0), Left(x1), x2, x3)
new_esEs6(x0, x1, ty_Integer)
new_ltEs18(x0, x1, ty_Char)
new_ltEs10(Just(x0), Just(x1), app(ty_[], x2))
new_lt23(x0, x1, ty_Integer)
new_lt23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_Ordering)
new_compare0([], [], x0)
new_ltEs4(Left(x0), Left(x1), ty_Int, x2)
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs29(x0, x1, app(app(ty_Either, x2), x3))
new_esEs25([], :(x0, x1), x2)
new_esEs6(x0, x1, ty_@0)
new_lt22(x0, x1, ty_Ordering)
new_esEs34(x0, x1, app(app(ty_@2, x2), x3))
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs28(x0, x1, ty_Bool)
new_lt21(x0, x1, ty_Integer)
new_lt14(x0, x1, x2)
new_ltEs14(x0, x1)
new_ltEs9(EQ, GT)
new_ltEs9(GT, EQ)
new_esEs33(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs24(x0, x1, ty_Double)
new_esEs27(x0, x1, ty_Ordering)
new_ltEs10(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs10(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare13(Nothing, Just(x0), x1)
new_esEs30(x0, x1, ty_Char)
new_compare9(x0, x1)
new_esEs28(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, ty_@0)
new_esEs6(x0, x1, ty_Float)
new_esEs11(x0, x1, ty_Ordering)
new_ltEs24(x0, x1, ty_Integer)
new_esEs32(x0, x1, app(ty_Ratio, x2))
new_esEs10(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(x0, x1, ty_Bool)
new_pePe(True, x0)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_compare31(x0, x1, ty_Bool)
new_gt(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs38(x0, x1, ty_Integer)
new_esEs38(x0, x1, app(app(ty_Either, x2), x3))
new_compare30(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_compare29(False, False)
new_ltEs4(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_ltEs24(x0, x1, app(ty_Maybe, x2))
new_esEs9(x0, x1, app(ty_[], x2))
new_ltEs8(x0, x1)
new_esEs15(Left(x0), Right(x1), x2, x3)
new_esEs15(Right(x0), Left(x1), x2, x3)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs15(Left(x0), Left(x1), ty_Char, x2)
new_esEs15(Right(x0), Right(x1), x2, ty_@0)
new_lt15(x0, x1)
new_compare31(x0, x1, app(ty_Ratio, x2))
new_lt23(x0, x1, ty_@0)
new_esEs7(x0, x1, app(ty_Maybe, x2))
new_esEs21(GT, LT)
new_esEs21(LT, GT)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs38(x0, x1, ty_Int)
new_esEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt5(x0, x1, app(ty_Ratio, x2))
new_esEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_gt(x0, x1, ty_Bool)
new_compare13(Just(x0), Nothing, x1)
new_esEs7(x0, x1, ty_Float)
new_esEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs9(LT, EQ)
new_ltEs9(EQ, LT)
new_lt19(x0, x1)
new_esEs4(x0, x1, ty_Float)
new_esEs34(x0, x1, app(ty_[], x2))
new_esEs33(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, ty_Bool)
new_esEs12(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs4(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs39(x0, x1, ty_Bool)
new_esEs34(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt6(x0, x1, ty_Bool)
new_primCompAux0(x0, EQ)
new_lt5(x0, x1, app(ty_Maybe, x2))
new_esEs29(x0, x1, ty_Char)
new_ltEs10(Just(x0), Just(x1), ty_Int)
new_ltEs4(Right(x0), Right(x1), x2, ty_@0)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_lt22(x0, x1, app(ty_Maybe, x2))
new_esEs28(x0, x1, app(ty_[], x2))
new_ltEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(x0, x1, ty_Float)
new_esEs10(x0, x1, app(ty_Maybe, x2))
new_compare210(x0, x1, True, x2)
new_lt7(x0, x1)
new_esEs33(x0, x1, ty_Bool)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_lt23(x0, x1, ty_Float)
new_ltEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare7(Integer(x0), Integer(x1))
new_esEs12(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_primEqInt(Neg(Zero), Neg(Zero))
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs5(x0, x1, ty_@0)
new_esEs25(:(x0, x1), [], x2)
new_compare18(x0, x1, True, x2, x3)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs21(x0, x1, ty_Char)
new_esEs7(x0, x1, ty_Integer)
new_esEs30(x0, x1, app(ty_Maybe, x2))
new_ltEs22(x0, x1, ty_Bool)
new_esEs35(x0, x1, ty_Float)
new_esEs31(x0, x1, ty_Double)
new_lt21(x0, x1, app(ty_Maybe, x2))
new_lt22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(x0, x1, app(ty_Maybe, x2))
new_esEs9(x0, x1, ty_Bool)
new_compare15(Left(x0), Left(x1), x2, x3)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs15(Right(x0), Right(x1), x2, ty_Float)
new_esEs31(x0, x1, ty_@0)
new_ltEs4(Right(x0), Right(x1), x2, app(ty_[], x3))
new_ltEs4(Right(x0), Right(x1), x2, ty_Float)
new_ltEs20(x0, x1, ty_Char)
new_esEs31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs34(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs9(LT, LT)
new_esEs8(x0, x1, app(ty_[], x2))
new_esEs32(x0, x1, app(app(ty_@2, x2), x3))
new_esEs39(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs39(x0, x1, app(ty_Ratio, x2))
new_esEs27(x0, x1, ty_@0)
new_esEs22(:%(x0, x1), :%(x2, x3), x4)
new_ltEs18(x0, x1, ty_Bool)
new_esEs27(x0, x1, app(ty_[], x2))
new_esEs31(x0, x1, ty_Integer)
new_ltEs10(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_esEs7(x0, x1, ty_Ordering)
new_gt0(x0, x1)
new_esEs6(x0, x1, ty_Ordering)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs9(x0, x1, app(ty_Ratio, x2))
new_compare11(x0, x1, False, x2, x3)
new_esEs26(LT)
new_esEs5(x0, x1, ty_Ordering)
new_gt(x0, x1, ty_Float)
new_esEs39(x0, x1, ty_Ordering)
new_esEs23(Integer(x0), Integer(x1))
new_lt24(x0, x1, ty_Char)
new_esEs7(x0, x1, ty_@0)
new_lt6(x0, x1, ty_Float)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs40(x0, x1, ty_Char)
new_compare29(True, False)
new_compare29(False, True)
new_esEs40(x0, x1, app(ty_[], x2))
new_esEs5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs40(x0, x1, ty_Integer)
new_lt5(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs4(Left(x0), Left(x1), ty_Double, x2)
new_esEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs12(Nothing, Just(x0), x1)
new_esEs37(x0, x1, ty_Int)
new_esEs5(x0, x1, ty_Double)
new_esEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs31(x0, x1, ty_Bool)
new_compare111(x0, x1, x2, x3, False, x4, x5)
new_esEs5(x0, x1, app(app(ty_Either, x2), x3))
new_esEs5(x0, x1, ty_Integer)
new_esEs8(x0, x1, app(ty_Maybe, x2))
new_ltEs4(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs33(x0, x1, ty_Ordering)
new_esEs15(Right(x0), Right(x1), x2, ty_Integer)
new_esEs8(x0, x1, app(ty_Ratio, x2))
new_ltEs4(Right(x0), Right(x1), x2, ty_Double)
new_ltEs16(x0, x1)
new_esEs34(x0, x1, app(ty_Maybe, x2))
new_ltEs4(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs10(Just(x0), Just(x1), app(ty_Ratio, x2))
new_lt5(x0, x1, ty_Int)
new_ltEs9(LT, GT)
new_esEs7(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs9(GT, LT)
new_gt(x0, x1, ty_@0)
new_esEs6(x0, x1, app(ty_[], x2))
new_esEs35(x0, x1, ty_Bool)
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_not(True)
new_ltEs19(x0, x1, ty_Char)
new_lt24(x0, x1, app(app(ty_Either, x2), x3))
new_primMulNat0(Succ(x0), Succ(x1))
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs10(Just(x0), Just(x1), app(ty_Maybe, x2))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_lt5(x0, x1, ty_Double)
new_not(False)
new_ltEs18(x0, x1, ty_Int)
new_esEs28(x0, x1, app(app(ty_@2, x2), x3))
new_esEs9(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs40(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs17(False, True)
new_ltEs17(True, False)
new_lt20(x0, x1, ty_Double)
new_ltEs4(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_ltEs22(x0, x1, app(ty_Maybe, x2))
new_ltEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs15(Left(x0), Left(x1), ty_Bool, x2)
new_compare31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare6(Float(x0, x1), Float(x2, x3))
new_lt6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs10(x0, x1, ty_Ordering)
new_lt21(x0, x1, ty_Float)
new_esEs29(x0, x1, app(ty_Ratio, x2))
new_gt(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(x0, x1, app(app(ty_Either, x2), x3))
new_compare31(x0, x1, app(app(ty_@2, x2), x3))
new_lt22(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Int)
new_lt6(x0, x1, ty_Int)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs38(x0, x1, ty_@0)
new_esEs28(x0, x1, ty_@0)
new_compare13(Nothing, Nothing, x0)
new_primCmpNat0(Succ(x0), Zero)
new_ltEs4(Left(x0), Left(x1), ty_Bool, x2)
new_esEs29(x0, x1, app(ty_Maybe, x2))
new_esEs39(x0, x1, app(app(ty_@2, x2), x3))
new_esEs39(x0, x1, app(ty_[], x2))
new_esEs35(x0, x1, app(app(ty_Either, x2), x3))
new_lt13(x0, x1)
new_esEs28(x0, x1, app(ty_Ratio, x2))
new_lt23(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs10(Just(x0), Just(x1), ty_Integer)
new_esEs11(x0, x1, ty_Float)
new_esEs40(x0, x1, ty_Int)
new_esEs7(x0, x1, app(ty_[], x2))
new_ltEs24(x0, x1, ty_Float)
new_compare112(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_esEs35(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Pos(Zero), Pos(Zero))
new_ltEs4(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs12(Just(x0), Just(x1), app(ty_[], x2))
new_lt22(x0, x1, ty_Double)
new_esEs6(x0, x1, ty_Char)
new_esEs21(GT, GT)
new_lt5(x0, x1, ty_Ordering)
new_esEs7(x0, x1, ty_Char)
new_primCompAux0(x0, LT)
new_lt6(x0, x1, app(ty_Ratio, x2))
new_ltEs4(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs4(Left(x0), Left(x1), ty_Char, x2)
new_lt23(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt24(x0, x1, app(app(ty_@2, x2), x3))
new_lt10(x0, x1)
new_ltEs7(@2(x0, x1), @2(x2, x3), x4, x5)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs22(x0, x1, ty_Int)
new_esEs29(x0, x1, ty_Double)
new_esEs12(Just(x0), Just(x1), ty_Bool)
new_ltEs24(x0, x1, ty_Char)
new_lt21(x0, x1, app(ty_Ratio, x2))
new_lt23(x0, x1, ty_Double)
new_esEs21(LT, EQ)
new_esEs21(EQ, LT)
new_esEs18(@0, @0)
new_esEs33(x0, x1, ty_Int)
new_esEs32(x0, x1, ty_Char)
new_esEs29(x0, x1, ty_Ordering)
new_lt22(x0, x1, ty_Char)
new_esEs11(x0, x1, ty_Int)
new_ltEs24(x0, x1, app(app(ty_@2, x2), x3))
new_compare25(x0, x1, x2, x3, True, x4, x5)
new_esEs30(x0, x1, ty_Ordering)
new_esEs12(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs35(x0, x1, ty_@0)
new_ltEs21(x0, x1, ty_Double)
new_esEs4(x0, x1, ty_Int)
new_esEs40(x0, x1, ty_Ordering)
new_esEs9(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs21(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_@0)
new_primEqNat0(Zero, Succ(x0))
new_pePe(False, x0)
new_fsEs(x0)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_lt21(x0, x1, ty_Int)
new_esEs4(x0, x1, ty_Ordering)
new_esEs4(x0, x1, ty_Integer)
new_ltEs23(x0, x1, app(app(ty_Either, x2), x3))
new_asAs(True, x0)
new_esEs40(x0, x1, ty_Bool)
new_ltEs22(x0, x1, ty_Integer)
new_ltEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(x0, x1)
new_esEs12(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs10(Nothing, Nothing, x0)
new_esEs4(x0, x1, ty_Char)
new_esEs10(x0, x1, app(ty_Ratio, x2))
new_compare0([], :(x0, x1), x2)
new_ltEs20(x0, x1, ty_Int)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, ty_Double)
new_lt24(x0, x1, ty_Bool)
new_esEs17(Char(x0), Char(x1))
new_lt20(x0, x1, ty_@0)
new_esEs31(x0, x1, ty_Int)
new_ltEs10(Just(x0), Just(x1), ty_Ordering)
new_lt23(x0, x1, ty_Int)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs32(x0, x1, ty_Ordering)
new_esEs8(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt5(x0, x1, app(ty_[], x2))
new_lt22(x0, x1, ty_Integer)
new_lt23(x0, x1, ty_Bool)
new_lt17(x0, x1)
new_esEs33(x0, x1, ty_Float)
new_esEs24(x0, x1)
new_esEs28(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(x0, x1, app(ty_Ratio, x2))
new_esEs38(x0, x1, ty_Bool)
new_lt23(x0, x1, ty_Char)
new_compare18(x0, x1, False, x2, x3)
new_primCmpNat0(Succ(x0), Succ(x1))
new_ltEs4(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_esEs35(x0, x1, app(ty_[], x2))
new_esEs7(x0, x1, ty_Bool)
new_compare27(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_ltEs15(x0, x1, x2)
new_esEs12(Just(x0), Just(x1), ty_Char)
new_esEs29(x0, x1, app(ty_[], x2))
new_ltEs10(Just(x0), Just(x1), ty_@0)
new_esEs8(x0, x1, app(app(ty_Either, x2), x3))
new_esEs27(x0, x1, ty_Double)
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs31(x0, x1, app(app(ty_Either, x2), x3))
new_esEs14(True, True)
new_esEs32(x0, x1, app(app(ty_Either, x2), x3))
new_lt6(x0, x1, app(ty_Maybe, x2))
new_gt(x0, x1, app(app(ty_Either, x2), x3))
new_esEs8(x0, x1, ty_Ordering)
new_esEs34(x0, x1, ty_Ordering)
new_lt21(x0, x1, ty_@0)
new_esEs9(x0, x1, ty_Char)
new_compare111(x0, x1, x2, x3, True, x4, x5)
new_compare31(x0, x1, ty_Char)
new_esEs26(EQ)
new_compare31(x0, x1, ty_Double)
new_esEs12(Just(x0), Just(x1), ty_Double)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_gt(x0, x1, ty_Double)
new_esEs9(x0, x1, ty_Int)
new_esEs30(x0, x1, ty_Integer)
new_esEs8(x0, x1, ty_Bool)
new_esEs10(x0, x1, ty_Int)
new_lt5(x0, x1, ty_Bool)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs40(x0, x1, app(ty_Ratio, x2))
new_esEs35(x0, x1, ty_Integer)
new_esEs9(x0, x1, ty_Float)
new_primMulNat0(Zero, Succ(x0))
new_esEs29(x0, x1, ty_Int)
new_lt20(x0, x1, ty_Integer)
new_lt22(x0, x1, ty_Bool)
new_esEs40(x0, x1, app(app(ty_Either, x2), x3))
new_lt22(x0, x1, app(ty_Ratio, x2))
new_esEs12(Just(x0), Just(x1), ty_Ordering)
new_esEs35(x0, x1, ty_Int)
new_esEs26(GT)
new_ltEs18(x0, x1, ty_Double)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_esEs15(Left(x0), Left(x1), ty_Double, x2)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs33(x0, x1, app(app(ty_@2, x2), x3))
new_compare0(:(x0, x1), [], x2)
new_ltEs17(True, True)
new_ltEs4(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare17(x0, x1, x2, x3, x4, x5, False, x6, x7, x8, x9)
new_esEs39(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs24(x0, x1, ty_@0)
new_compare31(x0, x1, app(ty_[], x2))
new_esEs34(x0, x1, ty_Int)
new_esEs34(x0, x1, app(ty_Ratio, x2))
new_esEs10(x0, x1, ty_Char)
new_esEs33(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Ordering)
new_esEs30(x0, x1, app(ty_[], x2))
new_esEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt18(x0, x1, x2, x3)
new_ltEs22(x0, x1, ty_@0)
new_esEs28(x0, x1, ty_Char)
new_esEs34(x0, x1, ty_Float)
new_esEs15(Left(x0), Left(x1), ty_Int, x2)
new_esEs41(GT)
new_ltEs23(x0, x1, app(ty_Ratio, x2))
new_ltEs4(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs39(x0, x1, ty_Char)
new_gt(x0, x1, app(ty_Ratio, x2))
new_esEs38(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, ty_Ordering)
new_esEs5(x0, x1, ty_Int)
new_sr(x0, x1)
new_ltEs20(x0, x1, ty_Integer)
new_esEs29(x0, x1, ty_@0)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs15(Left(x0), Left(x1), ty_Integer, x2)
new_esEs31(x0, x1, app(ty_Maybe, x2))
new_esEs29(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt21(x0, x1, ty_Bool)
new_esEs15(Right(x0), Right(x1), x2, ty_Bool)
new_esEs8(x0, x1, ty_Integer)
new_compare10(GT, EQ)
new_compare10(EQ, GT)
new_primMulInt(Neg(x0), Neg(x1))
new_esEs32(x0, x1, ty_Double)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs22(x0, x1, ty_Char)
new_compare110(x0, x1, True, x2)
new_compare19(x0, x1, x2, x3, True, x4, x5, x6)
new_ltEs4(Right(x0), Right(x1), x2, ty_Int)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_lt20(x0, x1, app(ty_[], x2))
new_primPlusNat0(Zero, Zero)
new_esEs39(x0, x1, ty_Int)
new_ltEs4(Right(x0), Right(x1), x2, ty_Bool)
new_esEs7(x0, x1, app(app(ty_Either, x2), x3))
new_compare13(Just(x0), Just(x1), x2)
new_esEs31(x0, x1, ty_Ordering)
new_ltEs23(x0, x1, ty_Char)
new_esEs4(x0, x1, ty_@0)
new_esEs27(x0, x1, ty_Float)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_lt8(x0, x1)
new_lt4(x0, x1, x2, x3)
new_lt5(x0, x1, app(app(ty_Either, x2), x3))
new_esEs15(Left(x0), Left(x1), ty_Float, x2)
new_esEs9(x0, x1, ty_@0)
new_esEs15(Right(x0), Right(x1), x2, ty_Char)
new_ltEs4(Right(x0), Right(x1), x2, ty_Char)
new_lt24(x0, x1, ty_Int)
new_esEs4(x0, x1, app(ty_[], x2))
new_esEs41(EQ)
new_lt23(x0, x1, app(ty_[], x2))
new_lt6(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs21(x0, x1, ty_Integer)
new_esEs34(x0, x1, ty_@0)
new_esEs9(x0, x1, ty_Ordering)
new_compare28(x0, x1, False, x2, x3)
new_lt5(x0, x1, ty_Float)
new_esEs29(x0, x1, app(app(ty_@2, x2), x3))
new_lt21(x0, x1, app(ty_[], x2))
new_lt22(x0, x1, ty_Int)
new_compare29(True, True)
new_lt24(x0, x1, ty_Float)
new_esEs39(x0, x1, ty_Double)
new_ltEs4(Left(x0), Left(x1), ty_Float, x2)
new_gt(x0, x1, ty_Ordering)
new_compare12(Char(x0), Char(x1))
new_ltEs20(x0, x1, ty_Double)
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqInt(Neg(Zero), Pos(Zero))
new_compare31(x0, x1, ty_@0)
new_esEs33(x0, x1, ty_Integer)
new_ltEs22(x0, x1, ty_Float)
new_esEs7(x0, x1, ty_Int)
new_ltEs4(Left(x0), Left(x1), ty_@0, x2)
new_esEs20(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs38(x0, x1, ty_Double)
new_ltEs21(x0, x1, app(ty_[], x2))
new_lt11(x0, x1, x2)
new_ltEs11(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs12(Just(x0), Just(x1), ty_Float)
new_ltEs23(x0, x1, app(ty_Maybe, x2))
new_esEs35(x0, x1, app(ty_Ratio, x2))
new_esEs36(x0, x1, ty_Integer)
new_lt5(x0, x1, ty_Char)
new_esEs33(x0, x1, app(ty_[], x2))
new_ltEs21(x0, x1, app(app(ty_@2, x2), x3))
new_lt9(x0, x1)
new_esEs8(x0, x1, ty_Double)
new_compare14(@0, @0)
new_ltEs19(x0, x1, ty_Int)
new_esEs35(x0, x1, ty_Double)
new_esEs27(x0, x1, ty_Int)
new_esEs28(x0, x1, ty_Double)
new_compare10(GT, GT)
new_esEs10(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_lt22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs14(False, True)
new_esEs14(True, False)
new_esEs38(x0, x1, app(ty_[], x2))
new_sr0(Integer(x0), Integer(x1))
new_esEs30(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare31(x0, x1, ty_Ordering)
new_ltEs24(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_gt(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_Bool)
new_compare19(x0, x1, x2, x3, False, x4, x5, x6)
new_esEs6(x0, x1, app(ty_Ratio, x2))
new_lt6(x0, x1, ty_Ordering)
new_esEs38(x0, x1, ty_Float)
new_esEs10(x0, x1, ty_Float)
new_esEs5(x0, x1, app(ty_Ratio, x2))
new_ltEs21(x0, x1, app(ty_Ratio, x2))
new_lt5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs38(x0, x1, ty_Ordering)
new_asAs(False, x0)
new_gt(x0, x1, ty_Char)
new_esEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs13(Double(x0, x1), Double(x2, x3))
new_ltEs19(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Float)
new_esEs4(x0, x1, app(ty_Maybe, x2))
new_compare31(x0, x1, ty_Float)
new_compare31(x0, x1, ty_Int)
new_lt20(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_compare5(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs13(x0, x1, x2)
new_ltEs24(x0, x1, ty_Int)
new_esEs38(x0, x1, app(app(ty_@2, x2), x3))
new_esEs30(x0, x1, ty_Int)
new_esEs28(x0, x1, ty_Float)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs10(x0, x1, ty_Double)
new_ltEs24(x0, x1, ty_Bool)
new_lt24(x0, x1, ty_Double)
new_esEs8(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs4(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(Just(x0), Nothing, x1)
new_ltEs10(Just(x0), Nothing, x1)
new_ltEs20(x0, x1, ty_@0)
new_lt21(x0, x1, ty_Char)
new_lt21(x0, x1, ty_Double)
new_ltEs10(Just(x0), Just(x1), ty_Char)
new_compare10(LT, EQ)
new_compare10(EQ, LT)
new_compare15(Right(x0), Right(x1), x2, x3)
new_compare15(Right(x0), Left(x1), x2, x3)
new_compare15(Left(x0), Right(x1), x2, x3)
new_esEs39(x0, x1, ty_@0)
new_ltEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs21(x0, x1, ty_Int)
new_ltEs24(x0, x1, app(ty_Ratio, x2))
new_esEs9(x0, x1, ty_Double)
new_esEs40(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Ordering)
new_ltEs19(x0, x1, ty_Bool)
new_ltEs21(x0, x1, ty_Ordering)
new_compare31(x0, x1, app(app(ty_Either, x2), x3))
new_esEs8(x0, x1, ty_Char)
new_esEs29(x0, x1, ty_Float)
new_esEs33(x0, x1, ty_Char)
new_esEs41(LT)
new_esEs30(x0, x1, ty_@0)
new_compare25(x0, x1, x2, x3, False, x4, x5)
new_esEs32(x0, x1, app(ty_Maybe, x2))
new_ltEs21(x0, x1, ty_Float)
new_esEs28(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_ltEs10(Just(x0), Just(x1), ty_Float)
new_esEs38(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs39(x0, x1, ty_Integer)
new_ltEs10(Just(x0), Just(x1), ty_Bool)
new_esEs11(x0, x1, ty_Integer)
new_esEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs31(x0, x1, ty_Char)
new_esEs11(x0, x1, ty_Char)
new_lt24(x0, x1, app(ty_Maybe, x2))
new_lt24(x0, x1, ty_Ordering)
new_ltEs21(x0, x1, app(ty_Maybe, x2))
new_primMulNat0(Succ(x0), Zero)
new_ltEs22(x0, x1, ty_Double)
new_compare110(x0, x1, False, x2)
new_esEs27(x0, x1, ty_Integer)
new_ltEs22(x0, x1, app(app(ty_@2, x2), x3))
new_gt(x0, x1, ty_Int)
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt6(x0, x1, ty_Double)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_primCompAux1(x0, x1, x2, x3)
new_lt5(x0, x1, ty_Integer)
new_esEs15(Right(x0), Right(x1), x2, ty_Int)
new_esEs40(x0, x1, ty_Float)
new_esEs11(x0, x1, app(ty_[], x2))
new_lt6(x0, x1, ty_Integer)
new_ltEs23(x0, x1, ty_Ordering)
new_esEs8(x0, x1, ty_Int)
new_esEs5(x0, x1, app(ty_Maybe, x2))
new_esEs21(EQ, EQ)
new_esEs29(x0, x1, ty_Integer)
new_ltEs23(x0, x1, app(ty_[], x2))
new_esEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs9(GT, GT)
new_esEs33(x0, x1, app(ty_Ratio, x2))
new_esEs4(x0, x1, ty_Double)
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs6(x0, x1, ty_Double)
new_esEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_compare28(x0, x1, True, x2, x3)
new_esEs5(x0, x1, app(ty_[], x2))
new_ltEs22(x0, x1, app(app(ty_Either, x2), x3))
new_lt21(x0, x1, ty_Ordering)
new_esEs32(x0, x1, ty_Integer)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_compare31(x0, x1, app(ty_Maybe, x2))
new_esEs30(x0, x1, app(app(ty_Either, x2), x3))
new_primPlusNat0(Zero, Succ(x0))
new_esEs14(False, False)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs38(x0, x1, ty_Char)
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs23(x0, x1, ty_Double)
new_esEs6(x0, x1, ty_Bool)
new_lt24(x0, x1, app(ty_[], x2))
new_esEs34(x0, x1, ty_Double)
new_ltEs4(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs36(x0, x1, ty_Int)
new_esEs39(x0, x1, app(ty_Maybe, x2))
new_esEs32(x0, x1, ty_Int)
new_esEs35(x0, x1, ty_Char)
new_gt(x0, x1, app(ty_Maybe, x2))
new_gt(x0, x1, app(ty_[], x2))
new_esEs31(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Integer)
new_compare16(:%(x0, x1), :%(x2, x3), ty_Integer)
new_ltEs4(Right(x0), Right(x1), x2, ty_Integer)
new_esEs10(x0, x1, ty_Integer)
new_lt24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs5(x0, x1, ty_Bool)
new_esEs7(x0, x1, ty_Double)
new_esEs9(x0, x1, app(ty_Maybe, x2))
new_esEs32(x0, x1, ty_Float)
new_ltEs19(x0, x1, ty_Double)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs: